首先在settings.py文件中配置:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
BACKEND:模板引擎類的python路徑,內置的模板引擎分別有'django.template.backends.django.DjangoTemplates'和'django.template.backends.jinja2.Jinja2'
DIRS:模板引擎搜索模板的路徑,如上,默認搜索project目錄下的templates目錄
APP_DIRS:告訴模板引擎是否搜索app目錄下的templates目錄。默認為true,即是默認搜索app目錄下的templates目錄
'DIRS': [os.path.join(BASE_DIR, 'templates')] 是指到 BASE_DIR/templates文件夾中去取模板
'DIRS': [os.path.join(BASE_DIR, 'app1/templates')] 是指到 BASE_DIR/app1/templates文件夾中去取模板
模板文件查找順序
如果同時設置
'DIRS': [os.path.join(BASE_DIR, 'templates')],
'APP_DIRS': True,
并且同時存在
mysite\templates\polls\index.html
mysite\polls\templates\polls\index.html
則會訪問 mysite\templates\polls\index.html 而不是 mysite\polls\templates\polls\index.html
模板文件的命名空間(其實質是模板文件的本地相對路徑)的應用場景是,在每個APP下建立appname/templates/appname/,然后在該目錄下再放模板文件(index.html)。然后在需要引用模板文件的地方,采用模板文件相對地址硬編碼時,形式如下:appname/index.html.
例如在views.py中
def index(request):
#return HttpResponse("Hello, world. You're at the polls index.")
return render(request,'polls/index.html')
或者index.html中
<li><ahref="/polls/xxx.html">{{question.question_text}}</a></li>
這根URL命名空間不一樣:URL命名空間是用于模板文件中對URL(所謂URL是瀏覽器訪問時的網絡地址)的反向引用,一般會使用模板標簽{% url %}
例如在index.html中
{% url 'polls:detail' question.id %}"
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。