瓶的html模板的覆盖问题

  

环境如下:
win10, Python3.6.5, Flask1.0.2

  

项目结构如下:

  
 <代码>/应用程序/jobs/主要/views.py/模板
  index . html/管理/views.py/模板
  index . html
   
  

/app/主/views.py内容如下:

  
 <代码类="语言python ">从瓶进口蓝图,render_template
  主要=蓝图(“主要”,__name__ template_folder=澳0濉?
  @main.route (“/?
  def指数():
  代码返回render_template (index . html)  
  

/app/admin/views.py内容如下:

  
 <代码类="语言python ">从瓶进口蓝图,render_template
  管理=蓝图(‘管理’,__name__ template_folder=澳0濉?url_prefix=/管理)
  @admin.route (“/?
  def指数():
  代码返回render_template (index . html)  
  

/app/jobs内容如下:

  
 <代码类="语言python ">从瓶进口瓶
  从app.main进口主要
  从app.admin进口管理
  
  def create_app ():
  应用=瓶(__name__)
  app.register_blueprint(主要)
  app.register_blueprint(管理)
  返回应用 
  

在cmd中输入瓶运行(执行前记得设置FLASK_APP, FLASK_DEBUG)。待程序跑起来后,在浏览器
地址栏中输入<代码> 127.0.0.1:5000> 127.0.0.1/管理/,
显示的还主要是蓝图的指数。html。奇怪,这是为什么呢?浮砂在网上搜索半天,最终在烧瓶官方的
github上找到了相关的问题,感兴趣的朋友可以看看。
<代码> render_template方法> template_folder>   

此外,官方的文档中也有相关说明(模板部分):blueprint-resources
为了方便新手朋友,浮砂翻译成了中文,部分地方进行了补充。

  

<强>模板
<强>模板

  

如果你想蓝图暴露模板可以通过提供
<代码> template_folder> 蓝图>
如果你想让蓝图暴露一些模板(比如flask-bootstrap扩展提供的“引导/base.html"),
可以给在构造蓝图时,指定<代码> template_folder>   

 <代码>管理=蓝图(‘管理’,__name__ template_folder=澳0濉? 
  

静态文件,可以绝对或相对路径蓝图
资源文件夹。

对于静态的文件,路径可以是绝对或相对于蓝图资源文件夹的。

  

模板文件夹添加到搜索路径的模板,但
优先级低于实际应用程序的模板文件夹中。这样你可以轻松
覆盖模板,一个蓝图提供了实际应用。
这也意味着如果你不希望蓝图模板不小心
覆盖,确保没有其他蓝图或实际应用模板
有相同的相对路径。当多个蓝图提供相同的相对
模板路径第一蓝图注册优先于他人。

模板的全局搜索路径中会自动添加这个模板文件夹,并且它的优先级低于应用的模板文件夹。这样,
你可以在实际应用中,轻而易举地覆盖某个蓝图的模板。也就是说,如果不想让某个蓝图模板
莫名其妙地被覆盖,请确保其他的蓝图的模板相对路径不同于实际应用的模板相对路径。假如
多个蓝图模板被指定了相同的相对路径,那么,当瓶搜索模板的时候,先被注册的蓝图模板
优先于后被注册的蓝图模板。

  

如果你有一个蓝图在文件夹<代码>个人信息/admin
需要渲染模板<代码>“管理/索引。html的> <代码>模板作为一个<代码> template_folder> ::文件:<代码>个人信息/admin/模板/admin/index . html> <代码>管理> 名叫<代码>索引。> 文件夹中。

所以说,如果你在<代码>个人信息管理> 渲染<代码>管理/索引。> template_folder> 模板,
那你就得像这样创建你的文件<代码>个人信息/admin/模板/admin/index . html代码,
额外的那个<代码>管理> 蓝图的<代码> index . html 文件覆盖掉。

  

进一步重申:如果你有一个蓝图名为<代码>管理> 想呈现一个模板称为:索引文件:<代码>。> 蓝图,最好的办法是把你的模板是这样的::
再说一遍,如果你有一个名为

瓶的html模板的覆盖问题