django模板文件路径设置

  

首先在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 %} "  

django模板文件路径设置