从外部python文件调用函数会引发500错误

时间:2016-08-25 06:11:24

标签: python flask

我试图从另一个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>

1 个答案:

答案 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