如何做有后台的网站,网络网站设计培训,怎么搭建网站平台,一个空间可以放几个网站锋哥原创的Python Web开发 Django5视频教程#xff1a;
2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计37条视频#xff0c;包括#xff1a;2024版 Django5 Python we…锋哥原创的Python Web开发 Django5视频教程
2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计37条视频包括2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~、第2讲 Django5安装、第3讲 Django5创建项目(用命令方式)等UP主更多精彩视频请关注UP账号。https://www.bilibili.com/video/BV14Z421z78C/尽管Jinja3的设计思想来源于Django 的模板引擎但在功能和使用细节上Jinja3比Django的模板引擎更为完善而且Jinja3的模板语法在使用上与 Django的模板引擎存在一定的差异。 由于Jinja3有模板设计人员帮助手册官方文档: https://jinja.palletsprojects.com/en/3.1.x/)并且官方文档对模板语法的使用说明较为详细因此这里只讲述Jinja3与 Django模板语言的使用差异。
我们把helloworld子项目下templates下的index.html复制到父项目下的templates下然后进行修改
!DOCTYPE html
html langen
headmeta charsetUTF-8titleTitle/title
/head
body
字符串{{ msg }}br
字典类型{{ msg2.tom }},{{ msg2.cat }},{{ msg2.wzw }}br
对象{{ msg3.name }},{{ msg3.age }}br
列表{{ msg4.0 }},{{ msg4.1 }},{{ msg4.3 }},{{ msg4.2 }}br
元组{{ msg5.0 }},{{ msg5.4 }},{{ msg5.1 }},{{ msg5.2 }},{{ msg5.3 }}h3模板标签/h3
p遍历for标签/p
{% for item in msg4 %}p这个是第{{ loop.length }}次循环/p{% if loop.first %}p这个是第一项{{ item }}/p{% elif loop.last %}p这个是最后一项{{ item }}/p{% endif %}
{% endfor %}
p判断if标签/p
{% if msg 模板变量 %}p模板变量/p
{% elif msg 模板变量2 %}p模板变量2/p
{% else %}p其他/p
{% endif %}
purl标签/p
{#a href{% url index %}请求index/a#}
a href{{ url(index) }}请求index/a
pwith标签/p
{% with infomsg %}{{ info }}
{% endwith %}/body
/html
运行测试 在遍历对象列表元组的时候假如元素或者属性不存在Jinja3会返回具体的报错信息no such element
以及url函数用法不一样在遍历for标签上属性页不一样内置的对象是loop
for函数模板变量
VariableDescriptionloop.index循环的当前迭代索引从1开始)loop.index0循环的当前迭代索引从0开始loop.revindex循环结束时的迭代次数(索引从1开始)loop.revindex0循环结束时的迭代次数(索引从0开始)loop.first如果是第一次迭代就为Trueloop.last如果是最后一次迭代就为Trueloop.length序列中的项目数即循环总次loop.cycle辅助函数,用于在序列列表之间循环loop.depth当前递归循环的深度从1级开始loop.depth0当前递归循环的深度从0级开始loop.previtem上一次迭代中的对象loop.nextitem下一次迭代中的对象loop.changed(*val)若上次迭代的值与当前迭代的值不同则返回True
我们把base.html和course.html也复制一份到父项目templates下
base.html需要修改下
!DOCTYPE html
html langen
headmeta charsetUTF-8title{% block title %}Python222学院{% endblock %}/title
/head
{# load不支持要去掉 #}
{#{% load static %}#}
body
div idhead
{# Django语法 #}
{# img src{% static logo.png %}/#}
{# Jinja3语法 #}img src{{ static(logo.png) }}/
/div
div idcontent{% block content %}欢迎进入Python222学院{% endblock %}
/div
div idfooter版权所有 www.python222.com
/div
/body
/html
运行测试: 相比较DjangoJinja3在static函数用法上也有区别模版继承用法基本一致。