如何访问查询参数或Flask路由中的查询字符串?这在Flask文档中并不明显。
下面的示例路由/数据说明了我想要访问该数据的上下文。如果有人请求example.com/data?abc=123这样的东西,我想访问字符串?abc=123,或者能够检索像abc这样的参数值。
@app.route("/data")
def data():
# query_string = ???
return render_template("data.html")
如何访问查询参数或Flask路由中的查询字符串?这在Flask文档中并不明显。
下面的示例路由/数据说明了我想要访问该数据的上下文。如果有人请求example.com/data?abc=123这样的东西,我想访问字符串?abc=123,或者能够检索像abc这样的参数值。
@app.route("/data")
def data():
# query_string = ???
return render_template("data.html")
当前回答
我更喜欢
user = request.args['user'] if 'user' in request.args else 'guest'
over
user = request.args.get('user')
通过这种方式,您可以首先检查url实际上包含查询字符串
其他回答
下面的实现对我来说很有效。
from flask import request
def getVerificationStatus():
try:
requestId=int(request.args.get('requestId'))
print(requestId)
status= verificationStepRepository.getVerificationStatus(requestId)
return tb.responsify(200, "success", status)
except Exception as e:
return errorHandler.dispatchInternalServerError(str(e))
这个准则对我很有效:
from flask import Flask, request
app = Flask(__name__)
@app.route('/')
def search():
query = request.args
for key,value in query.items():
print(key,value)
return "Hello World"
if __name__ == '__main__':
app.run(debug=True)
我们可以通过使用request.query_string来做到这一点。
例子:
让我们考虑view.py
from my_script import get_url_params
@app.route('/web_url/', methods=('get', 'post'))
def get_url_params_index():
return Response(get_url_params())
您还可以使用Flask Blueprints - https://flask.palletsprojects.com/en/1.1.x/blueprints/使其更加模块化
让我们考虑将名字作为查询字符串的一部分传递 / web_url / ?first_name =约翰
## here is my_script.py
## import required flask packages
from flask import request
def get_url_params():
## you might further need to format the URL params through escape.
firstName = request.args.get('first_name')
return firstName
正如你所看到的,这只是一个小例子-你可以获取多个值+格式化这些并使用它或将其传递到模板文件。
完整的URL可作为请求。Url,查询字符串可作为request.query_string.decode()。
这里有一个例子:
from flask import request
@app.route('/adhoc_test/')
def adhoc_test():
return request.query_string
要访问查询字符串中传递的单个已知参数,可以使用request.args.get('param')。据我所知,这是“正确”的做法。
ETA:在进一步讨论之前,您应该问问自己为什么需要查询字符串。我从来没有拉入原始字符串- Flask有以抽象方式访问它的机制。你应该使用它们,除非你有一个令人信服的理由不这样做。
我更喜欢
user = request.args['user'] if 'user' in request.args else 'guest'
over
user = request.args.get('user')
通过这种方式,您可以首先检查url实际上包含查询字符串