首先在settings.py文件中配置:
<代码>模板=[ { “后端”:“django.template.backends.django.DjangoTemplates”, “DIRS”: [os.path。加入(BASE_DIR“模板”), “APP_DIRS”:没错, “选项”:{ “context_processors”:( “django.template.context_processors.debug”, “django.template.context_processors.request”, “django.contrib.auth.context_processors.auth”, “django.contrib.messages.context_processors.messages”, ), }, }, )代码>
后台:模板引擎类的python路径,内置的模板引擎分别有“django.template.backends.django.DjangoTemplates”和“django.template.backends.jinja2.Jinja2”
DIRS:模板引擎搜索模板的路径,如上,默认搜索项目目录下的模板目录
APP_DIRS:告诉模板引擎是否搜索应用目录下的模板目录。默认为真,即是默认搜索应用目录下的模板目录
<代码>“DIRS”: [os.path。加入(BASE_DIR“模板”)]是指到BASE_DIR/模板文件夹中去取模板 “DIRS”: [os.path。加入(BASE_DIR app1/模板)]是指到BASE_DIR/app1/模板文件夹中去取模板 代码>
模板文件查找顺序
如果同时设置
<代码>“DIRS”: [os.path。加入(BASE_DIR“模板”), “APP_DIRS”:真的,代码>
并且同时存在
<代码> mysite \ templates \民意调查\ index . html mysite \ \ templates \投票\ index . html 民调则会访问mysite \ templates \ \指数。html而不是mysite \ \ templates \投票\ index . html代码>
模板文件的命名空间(其实质是模板文件的本地相对路径)的应用场景是,在每个应用下建立浏览器名称/模板/浏览器名称/,然后在该目录下再放模板文件(index . html),然后在需要引用模板文件的地方,采用模板文件相对地址硬编码时,形式如下:浏览器名称/index . html。
例如在views.py中
<代码> def指数(请求): #返回HttpResponse (“Hello, world。你在选举中指数。”) 返回渲染(请求,民意调查/index . html) 或者index . html中 & lt; li> & lt; ahref=" https://www.yisu.com/polls/xxx.html "在{{question.question_text}} & lt;/a> & lt;/li> 代码>
这根URL命名空间不一样:URL命名空间是用于模板文件中对URL(所谓的URL是浏览器访问时的网络地址)的反向引用,一般会使用模板标签{% URL %}
例如在index . html中
<代码> {% url的民意调查:细节问题。id %} " 代码>