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> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |