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>