指南:今天,首席CTO Note将与您分享Django如何将视图数据传输到页面。如果您可以解决您现在面临的问题,请不要忘记注意此网站。让我们现在开始!
在Django中,有两种编辑Views.py的方法,一个是基于类实现的方法,另一种是功能实现方法。两种方法都可以使用。
REST框架提供了一个Apiview类,该类是Django视图类的子类。
视图是Django的默认视图基类。Apiview是REST框架提供的所有视图的基类。继承了Django的观点,扩展了Django的视图,并对认证,授权,当前限制和不同的请求数据分析进行分析。
A。统一使用请求对象.DATA属性获得JSON格式的参数,表单参数,文件
B.使用请求对象.query_params获取查询字符串参数
C,Django支持参数采集方法,DRF支持所有DRF
A。扩展django中的httpresponse
b。在请求头中实现接受参数以动态返回
C。默认情况下,如果未传递接受参数或参数为application/json,则JSON格式的数据将返回到JSON格式
d。如果接受参数为文本/html,则可以返回的API页面(HTML页面)可以返回
E.Response的第一个参数是序列化后的数据(通常需要使用serializer object.data)
F.Status指定响应状态代码
首先使用Django的视图在卡表中获取卡号信息::
模型。设计卡表
Views.py视图写作
urls.py设置访问地址
REST框架的Apiview继承了Django视图类,并且卡类已序列化。Modelialializer在REST_FRAMEWORK中使用了此处的序列化
配置urls.py,设置访问地址
Django本身与Ajax无关。
但是,由于Django包含一个模板系统,因此您可以简单地将其理解为前端页面。在这些模板中,当您使用HTML中的POST方法作为前端工程师在HTML中编写页面。
Django可以通过视图中的request.post.get(“ xxx”)的方法接收Ajax传递的数据。
此外,Ajax的帖子需要注意CSRF的安全性。Django正式有一个现成的解决方案。在官方文档中找到代码,并将其粘贴到JS。
更多内容可以关注我的博客。
有时,我们需要一些变量来使用模板模板页面。这些变量在views.py.py.py.py.the.cy中没有返回设置。例如,以下代码:
#编码:UTF-8
从django.shortcuts导入渲染
DEF索引(请求):
上下文= {}
上下文['title'] ='测试标题'
返回渲染(请求,'index.html',上下文)
以上是views.py.t的方法之一。如下:
html
头/头
身体
H3 {title}}/H3
p是否登录:{{request.user.is_authenticated}/p
/身体
/html
除标题变量值外,响应结果还具有是否登录。登录信息来自请求变量。问题在于,请求变量未写入views.py.pys.pys.py的上下文中,并且模板不必获取变量。
当时这并不是一无所有。我逐步进行分析。解释原理后,您自然了解如何设置模板的全局变量或默认变量。
渲染方法是render_to_response的简短方法。上面的views.py代码等同于以下内容:
#编码:UTF-8
来自django.shortcuts导入render_to_response
来自django.template导入requestContext
DEF索引(请求):
上下文= {}
上下文['title'] ='测试标题'
返回render_to_response('index.html',context,requestContext(request))
如果删除了render_to_response的第三个参数,则requestContext(请求)部分。
index.html模板页面的值无法获得{{request.user.is_authenticatiencation}},也就是说,没有请求变量传递到首页。很明显requestContext至关重要。
RequestContext的内容可从官方Django文档中找到。
此类将分析设置模板设置中的Context_Processors配置。新的Django Project settings.py文件中的默认模板设置如下:
模板= [
{{{
'后端':'django.template.backends.django.djangotemplates',
'dirs':[],
'app_dirs':是的,
'选项': {
'Context_Processors':[
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',,
] ,,,,
},,
},,
这是给予的
每个人都可以发现Context_Processors具有一系列设置,其中Django的源代码是根据Django.template.context_processors.request找到的。
Django安装在Python安装目录中的LIB/SITE包装/目录中。查找django/template/context_processors.py文件。打开它时,您可以看到请求方法:
DEF请求(请求):
返回{'请求':请求}
此方法返回字典,键是请求,而值是请求对象。显然,渲染中的请求对象是通过在设置中加载context_processors list方法来获取字典项目。
我们还可以使用此方法为Django项目设置一个全局模板变量。例如,我的Django名称是myProject,并在myproject/myproject目录中创建Contexts.py文件。代码如下:
#编码:UTF-8
来自django.conf导入设置
#置
def lang(请求):
返回{'lang':settings.language_code}
该文件的方法需要请求参数,最后您需要返回字典。
再次打开settings.py文件,添加刚刚用模板编写的方法:
模板= [
{{{
'后端':'django.template.backends.django.djangotemplates',
'dirs':[],
'app_dirs':是的,
'选项': {
'Context_Processors':[
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',,
#customized模板全局变量(默认变量)
'myproject.contexts.lang',
] ,,,,
},,
},,
这是给予的
添加全局变量后,我们可以使用该变量,而无需在任何位置上手动编写相关代码以渲染模板页面。
例如:数据库具有一个用户表,它具有名称和年龄字段,需要在页面上显示
#.py
DEF测试(请求):
#从数据库中检查数据
user = user.objects.get(id = 1)
返回render_to_response('test.html',{'user':user},context_instance = requestContext(request))
#.html
... ... ...
名称:{user.name}}
年龄:{user.age}}
... ... ...
1. AJAX封装在模板中的jQuery插头中。我使用get请求,其中涉及在django中使用模板和静态文件。
2.然后配置路由,因为我们在AJAX中请求的路由地址是GetData,因此我们还必须在Django路由中设计此路由URL,并使用视图功能来处理路由。
3.然后使用视图函数处理相应的路由URL请求,然后导入方法jsonresponse,然后我自定义字符串,然后使用键值返回到字典表单。JSONRESPONSE方法,否则将无法获得JSON格式的数据。
4. GET请求中的数据参数是背景返回的数据,但是此数据为JSON格式,因此我们可以使用数据。密钥名称(仅定义U仅定义),以便可以删除数据。
5.运行Django服务器后,单击按钮开始请求数据,然后弹出数据。您可以看到数据与后台定义的数据完全相同。
首先,您需要知道如何在视图中渲染模板,这取决于您使用的数据库以及是否使用django orm。
以MySQL为例。如果您只需要从现有数据库中查询数据,则可以使用MySQLDB模块。查询数据和模板用于渲染,然后在渲染后返回到模板对象。
结论:以上是首席CTO的全部内容指出有关Django如何将数据传输到页面的全部内容。我希望这对每个人都会有所帮助。如果您想了解有关此信息的更多信息,请记住要收集对该网站的关注。