Pycharm pro 无法识别 Jinja 语法

问题描述 投票:0回答:2

我有一个html表单,我想使用flask解析用户在另一个html文件名login.html中输入的数据。

<form action="{{ url_for('login') }}" method="post">
@app.route('/login', methods=["POST"])
def receive_data():   
   if request.method == "POST":    
   return render_template("login.html", 
        name=request.form['name'],password=request.form['password'])

HTML 代码无法识别带有

url_for
的路径,并给我一个未解决的警告。为什么会发生这种情况?我可以采取什么措施来纠正这种情况?

python pycharm jinja2
2个回答
2
投票

好的,我解决了这个问题。问题是 Pycharm 无法识别 jinja 语法,因此我进入 Pycharm > 首选项 > 语言和框架 > 模板语言,然后在下拉菜单中将模板语言从无更改为 Jinja2。我也在Mac上,所以我不知道Windows上的路径是什么,但我确信这不会很难。 另外,由于我一开始很困惑,并认为发出警告是因为网址的书写方式或其他原因,所以我将标题更改为更接近问题的真正含义。


0
投票

函数

url_for()
在模板中使用,通过路线函数名称而不是可能不稳定的URL字符串来导航站点。使用路由函数名称作为参数调用
url_for()
是在模板内指示路由的更安全方法,因为 URL 字符串可以根据站点更改文件结构而更改。

需要在表达式分隔符

url_for()
内调用
{{ }}
函数才能由 Jinja2 模板引擎处理。可以将关键字参数添加到函数调用中,以将变量传递到 Flask 应用程序路由。:

<form action="{{ url_for('receive_data') }}" method="post">
@app.route('/login', methods=["POST"])
def receive_data():   
   if request.method == "POST":    
   return render_template("login.html", 
        name=request.form['name'],password=request.form['password'])
© www.soinside.com 2019 - 2024. All rights reserved.