渲染函数有三个参数请求初始化请求模板路径

能够将 HTML、代码/变量分别分离为视图和 HTML 模板。将两者联系起来,取决于渲染函数和模板语言。

图片[1]-渲染函数有三个参数请求初始化请求模板路径-4747i站长资讯

渲染函数

这个函数有三个参数 –

请求 – 初始化请求

模板路径 – 这是相对于项目 .py 文件中选项的变量的路径。

参数字典 – 字典包含模板中所需的所有变量。该变量可以由视图中声明的所有局部变量创建或使用()。

模板语言 (DTL)

模板引擎提供了一种小语言来定义应用程序的面向用户的层。

显示变量

变量显示如下:{{}}。在 () 函数的第三个参数中,模板被视图发送的变量替换。让我们更改 hello.html 以显示今天的日期:

你好.html

   
   
      Hello World!!!

Today is {{today}}

1234567复制代码类型:[html]

然后,我们的观点将变为——

def hello(request):
   today = datetime.datetime.now().date()
   return render(request, "hello.html", {"today" : today})
12345复制代码类型:[html]

现在,我们将在访问 URL /myapp/hello 后得到以下输出 –

Hello World!!!
Today is Sept. 11, 2015 12复制代码类型:[html]

您可能已经注意到,如果变量不是字符串,则使用方法来显示它;并且根据相同的原则,您可以访问对象的属性,就像在 . 例如:如果我们要显示日期的年份,这里的变量是:{{today.year}}。

筛选

它们帮助您显示修改后的变量。过滤器的结构如下:{{var|}}。

一个简单的例子 –

{{|:80}} – 过滤器将截断字符串,因此只能看到前 80 个字符。

{{|lower}} – 将字符转换为小写

{{||}} – 转义字符串内容,然后将其包装成标签。

您还可以设置默认变量。

标签

标签可以执行以下操作:if 条件、for 循环、模板继承等。

如果标记

就像 in 一样,您可以在模板中使用 if、else 和 elif –


   
   
      Hello World!!!

Today is {{today}}

We are {% if today.day == 1 %} the first day of month. {% elif today == 30 %} the last day of month. {% else %} I don't know. {%endif%} 1234567891011121314151617181920复制代码类型:[html]

在这个新模板中,基于今天的日期,模板将呈现这个值。

用于标签

就像 ‘if’ 一样,我们有 ‘for’ 标签,这些标签的使用方式与 . 让我们更改 hello 视图列表以发送到我们的模板 –

def hello(request):
   today = datetime.datetime.now().date()
   
   daysOfWeek = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
   return render(request, "hello.html", {"today" : today, "days_of_week" : daysOfWeek})
1234567复制代码类型:[html]

该模板用于显示列表 {{for}}-


   
      
      Hello World!!!

Today is {{today}}

We are {% if today.day == 1 %} the first day of month. {% elif today == 30 %} the last day of month. {% else %} I don't know. {%endif%}

{% for day in days_of_week %} {{day}}

{% endfor %} 12345678910111213141516171819202122232425复制代码类型:[html]

我们应该得到如下输出 –

Hello World!!!
Today is Sept. 11, 2015
We are I don't know.
Mon
Tue
Wed
Thu
Fri
Sat
Sun12345678910复制代码类型:[html]

块和扩展标签

模板系统是不完整的模板继承。当您设计模板的含义时html条件注释判断,子模板会根据自己的需要填写一个主模板,就像页面上的选定标签可能需要特殊的 CSS 一样。

让我们修改 hello.html 模板以从 .html 继承。

.html


         
      
         {% block title %}Page Title{% endblock %}
            
   
	
      
      {% block content %}
         Body content
      {% endblock %}      
   

123456789101112131415复制代码类型:[html]

你好.html

{% extends "main_template.html" %}
{% block title %}My Hello Page{% endblock %}
{% block content %}
Hello World!!!

Today is {{today}}

We are {% if today.day == 1 %} the first day of month. {% elif today == 30 %} the last day of month. {% else %} I don't know. {%endif%}

{% for day in days_of_week %} {{day}}

{% endfor %} {% endblock %} 1234567891011121314151617181920212223242526复制代码类型:[html]

在上面的例子中,当调用 /myapp/hello 时,我们仍然会得到和以前一样的结果,但是现在我们是在扩展而不是重构代码。

在 .html 中,我们使用标签块定义。标题块块将包含页面标题,内容块将是页面的主要内容。在 Home.html 中使用扩展继承自 .htmlhtml条件注释判断,然后我们使用上面的块定义(内容和标题)。

注释标签

注释标签用于模板定义注释,而不是 HTML 注释,它们不会出现在 HTML 页面中。它可以是一个文件,也可以只是注释一行代码。

公开课广场——人才学习交流平台

文章来源:http://www.toutiao.com/a6994720403742589472/

------本页内容已结束,喜欢请分享------

感谢您的来访,获取更多精彩文章请收藏本站。

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享