模板
1 模板位置
project_name/templates
下創(chuàng)建與你的app_name
同名文件夾帖努。
檢查project_name/settings.py
文件,如果沒有DIRS
這項(xiàng),添加之:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')],
'APP_DIRS': True,
....
},
},
]
在 html 文件中涉及到引用其他模板就可以這么寫了:
app_name/xxx.html
2 返回 html 頁面
編寫視圖函數(shù)。
def form1(request):
return render(request, "app_name/xxx.html")
創(chuàng)建一個(gè)命名空間。在 app_name/urls.py 中添加:
app_name = "write_your_app_name_here!"
# 舉例:
app_name = "blog"
# 添加 url 库继。示例如下:
from . import views
url('^form1/$', views.form1, name="form1")
在模板中寫超鏈接如下所示。模板標(biāo)簽 url 的語法就是 url '命名空間:name'
窜醉。這個(gè) name 是url('^form1/$', views.form1, name="form1")
中的 name宪萄。這樣寫的好處在于以后修改了視圖函數(shù)form1
,只要 name 對應(yīng)的值沒有變,就不用修改模板中的相關(guān)鏈接了酱虎。
href="{% url 'kingland:form1' %}"
3 模板渲染
渲染范圍到 {% endblock %}
位置雨膨。如下圖的 index.html
文件,如果在{% endblock %}
后面加html 或 js读串,可能是不會被 Django 的模板讀取的聊记。
{% extends 'blog/lib/base.html' %}
{% block content %}
<div class="content-body">
</div>
{% endblock %}
靜態(tài)資源
- 靜態(tài)資源的位置。
app_name/static/app_name/
, 在這個(gè)目錄下存放 css / js / image 等資源恢暖。如果 Django 2.0 以上排监,需要在settings.py
中添加設(shè)置:
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]
- 模板中引用靜態(tài)資源。
調(diào)試時(shí)打開瀏覽器控制臺杰捂,觀察輸出舆床,如果沒有加載資源的404 錯(cuò)誤,應(yīng)該就是調(diào)試成功了嫁佳。如果還是有問題挨队,ctrl + F5 強(qiáng)制刷新試試。
# 1. 模板文件的頂端載入模板標(biāo)簽
{% load staticfiles %}
# 2. 使用 static 標(biāo)簽引用靜態(tài)資源
<link href="{% static 'app_name/css/main.css' %}" rel="stylesheet">
# 3. 繼承模板
{% include 'app_name/xxx.html' %}