Flask接口签名sign原理与实例代码浅析
281
2022-08-30
Django(part12)--模板的标签(django自定义模板标签)
学习笔记,仅供参考
文章目录
模板的标签
if标签for标签for...empty标签cycle标签注释comment标签
举几个例子
模板的标签
作用
将一些服务器端的功能嵌入到模板中
标签语法
{%标签%}...{%结束标签%}
if标签
语法:
{%if条件表达式%}...{%elif条件表达式%}...{%else%}...{%endif%}
if标签里的布尔运算符
if条件表达式里可以用的运算符:
==, !=, <, >, <=, >=, in, not in, is, is not, and, or
在if标记中实际括号是无效的语法。如果我们需要指示优先级,则应使用嵌套的if标记,而不能使用括号提高优先级。
for标签
语法:
{% for 变量 in 可迭代对象 %}{% endfor %}
内置变量forloop:
变量 | 描述 |
forloop.counter | 循环计数(从1开始) |
forloop.counter0 | 循环计数(从0开始) |
forloop.revcounter | 反向循环计数(从len(可迭代对象)开始,到1结束) |
forloop.revcounter0 | 反向循环计数(从len(可迭代对象)-1开始,到0结束) |
forloop.first | 如果是第1次循环,则返回为真 |
forloop.last | 如果是最后1次循环,则返回为真 |
forloop.parentloop | 当存在循环嵌套时,parentloop可循环当前循环的父循环 |
for…empty标签
语法:
{% for 变量 in 可迭代对象 %}{% empty %}{% endfor %}
当可迭代对象为空时,就会走{% empty %}标签
cycle标签
循环从cycle列表后的参数中进行取值,每次调用进行一次更换。这个标签经常用于循环中,如处理表格的隔行变色
语法:
{% for i in some_list %}
注释
以{#开头, 以#}结束范围内的文字信息将会被模板的渲染系统忽略掉
比如:
{#
注意区别模板注释和 HTML内部注释。 模板注释在 HTML 解析时会直接被忽略,它不会生成 HTML 语句;而 HTML 注释依然会保留在 HTML 网页源代码中,生成 HTML 语句,它是针对于浏览器的注释。
comment标签
在{% comment %}和{% endcomment %}之间的内容会被忽略。
比如:
{% comment %} {% if has_car %}
注意,comment标签不能嵌套使用
举几个例子
例子1(if标签)
page3.html
urls.py
urlpatterns = [ path('admin/', admin.site.urls), re_path(r'page3_template/$', views.page3_template),]
views.py
def page3_template(request): d = {"name":"Ada", "has_bunny":True} return render(request, "page3.html", d)
向html>
urls.py
urlpatterns = [ path('admin/', admin.site.urls), re_path(r'page4_template/$', views.page4_template),]
views.py
def page4_template(request): d = {"name":"Huang", "age":10} return render(request, "page4.html", d)
向html>
urls.py
urlpatterns = [ path('admin/', admin.site.urls), re_path(r'page5_template/$', views.page5_template)]
views.py
def page5_template(request): d = {"bunny":["Huang", "Bai", "Tim"]} return render(request, "page5.html", d)
向html>
views.py
def page5_template(request): d = {"bunny":[]} return render(request, "page5.html", d)
向html>
名字:{{i.name}} | 年龄:{{i.age}} |
---|
urls.py
urlpatterns = [ path('admin/', admin.site.urls), re_path(r'page6_template/$', views.page6_template),]
views.py
class Bunny: def __init__(self, name, age): self.name = name self.age = age def speak(self): string = self.name + "今年已经" + str(self.age) + "个月啦" return stringdef page6_template(request): d = {"bunny":[Bunny("Huang", 10), Bunny("Bai", 11), Bunny("Tim", 8)]} return render(request, "page6.html", d)
向http://127.0.0.1:8000/page6_template/发起请求:
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~