首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何访问Flask路由中的查询字符串?

如何访问Flask路由中的查询字符串?
EN

Stack Overflow用户
提问于 2012-08-02 17:04:41
回答 9查看 467.4K关注 0票数 546

如何访问Flask路由中的查询参数或查询字符串?这在Flask文档中并不明显。

下面的示例路由/data说明了我希望访问该数据的上下文。如果有人请求像example.com/data?abc=123这样的东西,我希望能够访问字符串?abc=123,或者能够检索像abc这样的参数值。

@app.route("/data")
def data():
    # query_string = ???
    return render_template("data.html")
EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2012-08-02 17:14:53

from flask import request

@app.route('/data')
def data():
    # here we want to get the value of user (i.e. ?user=some-value)
    user = request.args.get('user')
票数 1K
EN

Stack Overflow用户

发布于 2012-08-03 00:29:15

完整的URL以request.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有以抽象的方式访问它的机制。你应该使用它们,除非你有令人信服的理由不这样做。

票数 299
EN

Stack Overflow用户

发布于 2015-05-29 13:26:54

我们可以使用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 =john

## 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

正如你所看到的,这只是一个小例子-你可以获取多个值+格式化这些值并使用它,或者将它传递到模板文件中。

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11774265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档