当前位置: 首页 > 网络应用技术

如何在HTML中获取Django模型变量(Django根据数据库生成模型)

时间:2023-03-07 22:05:23 网络应用技术

  本文将告诉您HTML如何获得Django模型变量,Django根据数据库生成相应的知识点。我希望能帮助您,不要忘记收集此网站。

  本文目录清单:

  1.如何在Django模板中注入全局变量2. DJANGO使用查看功能在HTML表单中获取用户输入值3. Django的视图直接传输HTML代码调用模板中的JS函数。4。如何将从前端获得的用户用作全局变量5. DJANGO页面HTML代码染色问题。如果用户数据通过render_to_to_response方法注入用户数据,它将执行很多重复的工作,就像以下内容一样:def views_meth1(请求):return render_to_response('template_1.html',{'user'':request.user}})#...剩余的n方法。当需要传递的变量相对简单并且数量很小时,这是可以的。一旦有更多的变量需要注入,或者您需要通过一些其他计算来生成它。到了麻烦很棒。因此,如何避免重复您的2B模式?我们可以选择以下模型:每次创建时,一个新的django项目,通常我们将创建一个类似于utils.py的工具模块。在root Directory中。一种渲染方法,以注入每个模板的指定全局变量:#in Utils.py:def:def mp_render(请求,request,template,template,context = {}):context ['user'] = request.user resto_responseviews_meth3(请求):返回mp_render(request,'template_3.html')。这样,如果将来全局变量有新的增加,您只需要修改MP_Render方法。嗯,这是一种非常常见的方法。由于这是一种常见的方法,所以让我们有一个文学上的观点。LET查看Django文档中render_to_response方法的定义。在“必需的参数”中,有此方法的第三个参数,称为Context_Instance。此参数的描述如下:渲染测试的上下文实例您需要使用requestContext对象呈现模板。“那么上下文处理器是什么?在阅读了本文档的定义后,所有内容都应该清楚。首先,您需要了解,在Django模板系统中,包装模板变量有两种类型,一个是django.template.context。这是最常用的。当我们使用render_to_response方法时,第二个字典参数将被此上下文类封装,然后传递到模板。另一个是django.template.requestContext.Where.Where.Where.Where.Where.Where.Where.Where.Where。当生成requestContext变量时,您需要将httprequest对象传递为其第一个参数:c = requestContext(requestContext)第二个差异是,它将添加一些自动注入模板的变量。这些变量来自何处?django中的部分设置。此配置中的TPLE元素实际上是一种可以一个一个称为的方法。这些方法将接收一个httprequest对象作为参数,最后返回字典。本字典中的元素将成为一个变量,可以自动将模板注入requestContext中。Auth方法,包括三个元素,因此,如果使用Render_to_response方法,则传递第三个请求context参数,然后在其渲染的模板中,它可以与相应的用户,消息,perms变量。因此,最后一个文学解决方案是在需要注入全局变量的每个视图方法中,当调用render_to_response时,它将传递到第三个requestContext对象参数:def views_meth1(request):d1 = {'method':1flexibility较高且易于展开。在一般项目开发中,我个人认为普通方法足够了,因此请根据项目选择。

  来自django.views.decocotors.csrf导入csrf_exempt

  在您的功能前添加CSRF_EXEMPT装饰器

  例如:

  @csrf_exempt

  def get_a(请求):

  此外,在模板中,将{%csrf_token%}添加到表单标签

  例如:

  表单Action = ...方法=“ post” ...

  {%csrf_token%}

  输入类型=“ text” name =“ a”测试/输入

  有三种方法:

  1.在模板中的HTML文件中,包含此功能的JS文件直接嵌入HTML中。

  2.通过JS中的AJAX打开链接,例如/admin/url?key = value,然后keyvlaue = request.get.get.get.get('key',none)在admin.py中的url方法中获取此value,然后py进行一些处理后,返回html代码的一部分将此JS函数到JS,然后将其添加到JS中的页面中,而无需刷牙:$(“ #id”)。html(xmlhttp.responsetext);

  3.基本上与上述相同,适用于Ajax进行实施,但是在PY处理后返回的不是实质性的HTML,而是MSG指令。接收JS后,JS函数与AJAX相关。例如,JS函数。例如,if(xmlhttp.responsetext =='ok')fun();

  我希望你能够明白。

  有时,我们需要一些变量来使用模板模板页面。这些变量在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',

  ] ,,,,

  },,

  },,

  这是给予的

  添加全局变量后,我们可以使用该变量,而无需在任何位置上手动编写相关代码以渲染模板页面。

  我认为是您使模板写错了。在上面2中。您传递给模板的参数是字典。您只能在django的模板中使用该字典的“键”。使用mailcon.lettercon,从模板转换为python是tettercon.lettercon。这是错误的。您应该写{{mailcon |安全}}直接在模板中。

  关于HTML如何获得Django模型变量和Django,根据数据库生成模型引入此处。我想知道您是否从中找到了所需的信息?如果您想进一步了解此信息,请记住要收集对该网站的关注。