加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 在Flask中未定义url_for

发布时间:2020-12-20 11:32:26 所属栏目:Python 来源:网络整理
导读:import osfrom jinja2 import Environment,FileSystemLoaderenv = Environment(loader=FileSystemLoader('templates'))from flask import Flask,url_forapp = Flask(__name__)@app.route('/')def hello_world(): tmpl = env.get_template('index.html') side
import os
from jinja2 import Environment,FileSystemLoader
env = Environment(loader=FileSystemLoader('templates'))
from flask import Flask,url_for
app = Flask(__name__)

@app.route('/')
def hello_world():
    tmpl = env.get_template('index.html')
    sidebar = env.get_template('sidebar.html')
    return tmpl.render(root_url="",sidebar=sidebar.render())

if __name__ == '__main__':
    app.run(debug=True)

并在tempaltes / index.html

{{ url_for('static',filename='js/main.js') }}

虽然,我得到的url_for没有定义?我试图在网上关注这些例子,但我不知道为什么我会这样做

解决方法

我认为问题是你正在尝试在jinja html模板中使用代码逻辑. Jinja禁止在设计上使代码/演示文稿不混合.

所以,我建议在代码中生成url,将其存放在发送jinja的对象中,然后在模板中使用该变量.有点像:

def hello_world():
    tmpl = env.get_template('index.html')
    sidebar = env.get_template('sidebar.html')
    js_url = url_for('static',filename='js/main.js')
    return tmpl.render(root_url="",sidebar=sidebar.render(),jsurl=js_url)

然后在模板方面:

< script type =“text / javascript”src =“{{jsurl}}”>< / script>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读