版权声明:学而不思则罔,思而不学则殆 https://blog.csdn.net/weixin_43422505/article/details/83188164
具体参考Django官方文档
首先要在setting.py中配置模板路径
TEMPLATES = [{ 'DIRS': [os.path.join(BASE_DIR,'templates')], }]
创建一个templates文件夹(推荐app的放在各自的文件夹下)
应用下的views.py中配置参数
def index(request):
#rendeer:渲染
#模板:html文件
#template_name;指定要渲染的模板的名称
return render(request, template_name='temrender/index.html', )
注意:引用模板可以在templates下新创建文件夹,将模板放入新文件夹里面,这样可以避免模板引用错误
模板内的语法
views.py的return中配置
return render(request,template_name='temrender/index.html',context={
'name':'张三',
'books':['html','js','css','python',100],
'date':datetime.datetime.now(),
'people':p,
'dict':{'username':'hh','password':'1234'},
'input':'<h1>这是一个h1标签</h1>'
})
- {{ }}:作用就是用于加载一个变量的值
- {% %}:作用就是用来写for循环.if判断等条件语句的语法
<h1>{{ name }}</h1>
- 通过索引取值
<h1>{{ books.0 }}--{{ books.1 }}--{{ books.2 }}--{{ books.3 }}--{{ books.4 }}</h1>
- 通过for循环遍历
{% for book in books %}
<p>{{ book }}</p>
{% endfor %}
- 判断
#判断大小
{% if people.age < 18 %}
<p>未成年人</p>
{% elif people.age < 30 %}
<p>中年人</p>
{% else %}
<p>老年人</p>
{% endif %}
#判断是否存在
{% if name %}
<p>name变量是存在的</p>
{% else %}
<p>name变量不存在</p>
{% endif %}
- 通过键取值
<p>{{ dict.username }}-{{ dict.password }}</p>
- 遍历字典取值
{% for key,value in dict.items %}
<p>{{ key }}-{{ value }}</p>
{% endfor %}
列表的其他两种遍历方式
{% for book in books %}
{# forloop.counter:获取循环的计数 #}
<p>{{ forloop.counter }}:{{ book }}</p>{# counter:计数从1开始;12345 #}
<p>{{ forloop.counter0 }}:{{ book }}</p> {# counter0:计数从0开始;012345 #}
<p>{{ forloop.revcounter }}:{{ book }}</p> {# revcounter:倒着从计数从7开始;7654 #}
<p>{{ forloop.revcounter0 }}:{{ book }}</p> {# revcounter0:倒着从计数从6开始;654 #}
{% endfor %}
- 过滤器:对{{变量}}的值进行处理
sale, upper, lower, first, lase, cut
<p>{{ date |date:'Y-m-d h:i:s' }}</p>
<p>{{ dict.username | upper |lower |capfirst }}</p>
<p>{{ input |safe }}</p>
- {% autoescape off %}:off就是关闭自动转义,通过这个内置标签,可以将(字符串中的h1标签)转化成(html中h1标签 )
{% autoescape off %}
<p> {{ input }}</p>
{% endautoescape %}