我试图从另一个python文件调用一个函数。我已导入该功能。当我在外部调用该函数时,它按预期工作。
但是当我在返回render_template或重定向之前尝试调用该函数时,我得到500错误。 我知道我做错了什么,但我不确定是什么。任何形式的帮助都将受到高度赞赏。
from flask import Flask, render_template, request, redirect, url_for
from content_man import Content,Page_Content
from url_trigger import trigger
TEST_TOPIC = Content()
PAGE_TOPIC = Page_Content()
app = Flask(__name__)
@app.route('/',methods=["GET","POST"])
def homepage():
return render_template("main.html")
@app.route('/dashboard/',methods=["GET","POST"])
def dashboard():
return render_template("dashboard.html", TEST_TOPIC=TEST_TOPIC)
@app.route('/test/', methods=["GET","POST"])
def test():
if request.method == "POST":
selected_list = request.form.getlist("to_run")
print (selected_list)
return redirect(url_for('trigger',selected_list=selected_list))
else:
return render_template("test.html", PAGE_TOPIC=PAGE_TOPIC)
@app.route('/trigger/', methods=["GET","POST"])
def trigger():
data = request.args.getlist('selected_list')
t = trigger(data)
return "hey"
if __name__ == "__main__":
app.run()
错误发生在@ app.route(' /触发/',方法= [" GET"," POST"])我正在尝试调用函数触发器。
我的url_trigger python文件包含以下简单定义:
def trigger(my_list=[], *args):
for i in my_list:
print (i)
页面测试的HTML文件如下:
<div class="container">
<form method="post" action = "{{ url_for('test') }}">
{% for row_index in range(PAGE_TOPIC['Critical BP']|count) %}
<div class="checkbox">
<label><input type="checkbox" name="to_run" value="{{ PAGE_TOPIC['Critical BP'][row_index] }}">{{ PAGE_TOPIC['Critical BP'][row_index] }}</label>
</div>
{% endfor %}
<div>
<label><input type="submit" /></label>
</div>
</form>
</div>
答案 0 :(得分:1)
导入名为trigger
的函数,但您还要在导入模块中定义名为trigger
的函数。当trigger
调用import url_trigger
时,它会调用自身,并且不接受任何参数。您需要重命名其中一个函数,或者导入为url_trigger.trigger
,然后将导入的函数称为jinja2.exceptions.TemplateSyntaxError: unexpected char '\\' at 124272
File "./{{cookiecutter.project_slug}}/static/swagger/lib/jsoneditor.min.js", line 10
。