1、模板目录
“应用名称”/templates
默认在根目录查找同名目录
settings.py(优先在项目的根目录templates查找)
'DIRS':[os.path.join(BASE_DIR,'templates']
2、静态文件
- 图片
- CSS
- js
都会当作静态文件处理,该文件夹为应用下边的static目录
setting.py有关static目录定义STATIC_URL = '/static/'
引入static目录{% load static %}
模板使用引用的static目录下静态文件
<img src="{% static 'img/123.png'%}" alt="">
3、模板语法
在HTML中写一些占位符,由Django对这些占位符进行替换和处理
3.1 获取视图函数传值
def tpl(request):
name = "韩超"
roles = ["管理员","CEO","保安"]
#单独的值用花括号字典方式
return render(request, 'tpl.html', {"n1": name,"n2":roles})
<body>
<h1>模板语法的学习</h1>
<div>{{n1}}</div>
<div>{{n2}}</div>
<div>{{n2.0}}</div>
<div>{{n2.1}}</div>
<div>{{n2.2}}</div>
</body>
</html>
3.2 列表取值
<h1>模板语法的学习</h1>
<div>{% for item in n2 %}
<span>{{item}}</span><br>
{% endfor %}
</div>
3.4 字典取值
#views.py
def tpl(request):
user_info = {"name":"郭智","salary":10000,"role":"CTO"}
return render(request, 'tpl.html', {"n1": name,"n2":roles,"n3":user_info})
#模板.html
<ul>
{% for k,v in n3.items %}
<li>{{k}} = {{v}}</li>
{% endfor %}
</ul>
3.4 列表里的字典取值
#views.py
def tpl(request):
data_list = [
{"name":"郭智","salary":10000,"role":"CTO"},
{"name":"卢慧","salary":10000,"role":"CTO"},
{"name":"赵建先","salary":10000,"role":"CTO"},
]
return render(request, 'tpl.html', {"n4":data_list})
#模板.html
{% for item in n4 %}
<div>{{item.name}} {{item.salary}}</div>
{% endfor %}
3.5 模板里的条件语句
{% if n1 == "韩超" %}
<h1>这个是对的</h1>
{% else %}
<h1>这个是错误的</h1>
{% endif %}
3.6 模板里有关choices取真正值
get_status_display
#models.py
status_choices = (
(1,'已占用'),
(2,'未使用')
)
status = models.SmallIntegerField(verbose_name="状态",choices=status_choices,default=2)
{% for obj in queryset %}
<tr>
<td>{{ obj.id }}</td>
<td>{{ obj.get_level_display }}</td>
<td>{{ obj.get_status_display }}</td>
<td>
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。