【发布时间】:2018-06-08 01:27:31
【问题描述】:
所以我正在为 Flask 中的路由创建一个函数来处理 POST 请求,但 Flask 出于某种原因无法识别我的请求变量。我有这个 Python 代码:
@app.route("/decide", methods=["GET", "POST"])
def decide():
if request.method == "POST":
# Ensure user has permission to modify this request
request_id = request.form.get("job_id")
if not request_id:
return redirect("/")
request = Requests.query.get(request_id)
if not request:
return redirect("/")
job = Jobs.query.get(request.job_id)
if not job:
return redirect("/")
job_creator = job.creator_id
if job_creator != session["user_id"]:
return redirect("/")
if request.form.get("submit") == "accept":
print("accept")
if request.form.get("submit") == "reject":
print("reject")
return redirect("/")
使用此 HTML 代码: {% 扩展“dad.html”%}
{% if job.creator_id == session.user_id %}
{% block head %}
<title>{{job.title}}</title>
{% endblock %}
{% block body %}
<h1>{{job.title}}</h1>
<br />
<br />
{% if total > 0 %}
<h3>There {% if total != 1%}are{% else %}is{% endif %} {{total}} request{% if total != 1%}s{% endif %} for this job</h3>
{% else %}
<h3>There are no requests for this job currently</h3>
{% endif %}
<br />
{% for requ in requests %}
<form method="POST" id="form" action="/decide">
<div class="row">
<input type="hidden" value="{{requ.id}}" name="job_id" />
<div class="col-md-3">
<h3><a href="/profiles/{{requ.requester_username}}">{{requ.requester_fname}} {{requ.requester_lname}}</a></h3>
</div>
<div class="col-md-1">
<button type="submit" name="submit" value="accept" id="accept" class="btn btn-success">Accept</button>
</div>
<div class="col-md-1">
<button type="submit" name="ding" value="reject" class="btn btn-danger">Reject</button>
</div>
</div>
</form>
<br />
<br />
{% endfor %}
{% endblock %}
{% endif %}
然后我得到一个错误:
UnboundLocalError: local variable 'request' referenced before assignment
在线:
if request.method == "POST":
我的所有其他路线都喜欢这项工作,只是出于某种原因它无法识别“请求”。我还从烧瓶中导入了请求对象,所以这不是问题。感谢您提供的任何帮助!
【问题讨论】:
标签: python post flask routes request