找不到jinja2模板和内部服务器错误

时间:2017-02-26 07:12:51

标签: python flask pycharm jinja2

Python代码:

from flask import Flask, render_template

app = Flask(__name__)

@app.route("/")

def hello():

    return render_template('testing.html')

if __name__ == "__main__":
    app.run()

Html文件:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>My name is pk</h1>
</body>
</html>

如何在pycharm社区版中启用jinja2。我在同一个项目中直接创建html文件和.py文件

2 个答案:

答案 0 :(得分:3)

烧瓶文件结构

|-app
|--templates // where your html files must be in
|--static // where your js and css files must be in
|--.py files
|--other packages

如果您已经下载了烧瓶包,那么您的系统中也会启用jinja。

答案 1 :(得分:2)

默认情况下,Flask会查看应用根级别的templates文件夹。

  

http://flask.pocoo.org/docs/0.10/api/

     

template_folder - 包含应该的模板的文件夹   应用程序使用。默认为&#39;模板&#39;根目录中的文件夹   申请的路径。

所以你有一些选择,

  1. template重命名为templates
  2. 提供template_folder个参数,让您的template文件夹被烧瓶应用识别:

    app = Flask(__name__, template_folder='template')
    
  3. Flask希望templates目录与创建它的模块位于同一文件夹中; 您需要告诉Flask改为寻找其他地方:

    app = Flask(__name__, template_folder='../pages/templates')
    

    这适用于相对于当前模块路径解析的路径。

    您不能拥有每个模块的模板目录,而不能使用blueprints。常见的模式是使用templates文件夹的子目录来分区模板。您使用加载了templates/pages/index.html等的render_template('pages/index.html')