我想從另一個python文件調用一個函數。我已經導入了該功能。當我從外部調用函數時,它按預期工作。從外部python文件調用函數拋出500錯誤
但是,當我嘗試在返回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蟒蛇文件包含以下簡單的定義:
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>
顯示完整的堆棧跟蹤。 –
您好謝爾蓋,下面是回溯:回溯(最近一次通話最後): 文件「C:/ Flask_Web/__init__.py」,第37行,觸發器 t =觸發器(數據) TypeError:trigger()取0位置參數,但1被給予 – Saurav