如何使用 Flask 响应 get 请求?
How do I respond to a get request with Flask?
如何使用 Flask 响应获取请求?文档里没找到,看不懂,网上也查了,也没找到。
我有一个表格,这是代码的一部分:
<input type="radio" name="topic" value="{{ topic }}" id="{{ topic }}" onclick="submit()">
现在您可以从这里看到,输入在提交时发送 'topic' 的值。
我如何使用 Flask 来响应像该输入这样的任何 GET 请求?像这样:
@app.route('/topic/[any 'topic' value from form]', methods=['GET'])
def topic():
topic = request.form['topic']
return render_template('topic.html', topic=topic)
谢谢。
更新:
所以我决定按照建议使用post。我试图用这段代码测试 post:
@app.route('/topic/', methods=['POST'])
def topic():
chosenTopic = request.form['chosenTopic']
return render_template('topic.html', chosenTopic=chosenTopic)
和这个表格:
<input type="radio" name="chosenTopic" value="{{ topic[3:topic|length-4:] }}" id="chosenTopic" onclick="submit()">
我在 /topic 页面上使用简单的 {{ chosenTopic }} 对其进行了测试,但什么也没有出现?有人对原因有什么建议吗?
类似这样的内容显示了一个简单的示例。
from flask import Flask, request, redirect
app = Flask(__name__)
# really look in db here or do whatever you need to do to validate this as a valid topic.
def is_valid_topic(topic):
if topic == "foo":
return False
else:
return True
@app.route('/')
def index():
return '<html><form action="topic/" method="post"><input name="topic" type="text"><input type="submit"/></form></html>'
@app.route('/topic/', methods=['POST'])
def find_topic():
t = request.form['topic']
if is_valid_topic(t):
return redirect('topic/%s' % t)
else:
return "404 error INVALID TOPIC", 404
@app.route('/topic/<topic>')
def show_topic(topic):
if is_valid_topic(topic):
return '''<html><h1>The topic is %s</h1></html>''' % topic
else:
return "404 error INVALID TOPIC", 404
if __name__ == '__main__':
app.run(debug=True)
您在 POST 请求中接受参数,然后重定向到 GET。
如何使用 Flask 响应获取请求?文档里没找到,看不懂,网上也查了,也没找到。
我有一个表格,这是代码的一部分:
<input type="radio" name="topic" value="{{ topic }}" id="{{ topic }}" onclick="submit()">
现在您可以从这里看到,输入在提交时发送 'topic' 的值。
我如何使用 Flask 来响应像该输入这样的任何 GET 请求?像这样:
@app.route('/topic/[any 'topic' value from form]', methods=['GET'])
def topic():
topic = request.form['topic']
return render_template('topic.html', topic=topic)
谢谢。
更新:
所以我决定按照建议使用post。我试图用这段代码测试 post:
@app.route('/topic/', methods=['POST'])
def topic():
chosenTopic = request.form['chosenTopic']
return render_template('topic.html', chosenTopic=chosenTopic)
和这个表格:
<input type="radio" name="chosenTopic" value="{{ topic[3:topic|length-4:] }}" id="chosenTopic" onclick="submit()">
我在 /topic 页面上使用简单的 {{ chosenTopic }} 对其进行了测试,但什么也没有出现?有人对原因有什么建议吗?
类似这样的内容显示了一个简单的示例。
from flask import Flask, request, redirect
app = Flask(__name__)
# really look in db here or do whatever you need to do to validate this as a valid topic.
def is_valid_topic(topic):
if topic == "foo":
return False
else:
return True
@app.route('/')
def index():
return '<html><form action="topic/" method="post"><input name="topic" type="text"><input type="submit"/></form></html>'
@app.route('/topic/', methods=['POST'])
def find_topic():
t = request.form['topic']
if is_valid_topic(t):
return redirect('topic/%s' % t)
else:
return "404 error INVALID TOPIC", 404
@app.route('/topic/<topic>')
def show_topic(topic):
if is_valid_topic(topic):
return '''<html><h1>The topic is %s</h1></html>''' % topic
else:
return "404 error INVALID TOPIC", 404
if __name__ == '__main__':
app.run(debug=True)
您在 POST 请求中接受参数,然后重定向到 GET。