如何使用Flask从URL获取命名参数?

2024-04-26 18:44:29 发布

您现在位置:Python中文网/ 问答频道 /正文

当用户访问我的flask应用程序上运行的此URL时,我希望web服务能够处理在问号之后指定的参数:

http://10.1.1.1:5000/login?username=alex&password=pw1

#I just want to be able to manipulate the parameters
@app.route('/login', methods=['GET', 'POST'])
def login():
    username = request.form['username']
    print(username)
    password = request.form['password']
    print(password)

Tags: to用户formweb应用程序httpurlflask
3条回答

URL参数在^{}中可用,这是一个MultiDict,它有一个get方法,具有可选的参数,用于默认值(default)和类型(type),这是一个可调用的,可将输入值转换为所需格式。

from flask import request

@app.route('/my-route')
def my_route():
  page = request.args.get('page', default = 1, type = int)
  filter = request.args.get('filter', default = '*', type = str)

上面代码的示例:

/my-route?page=34               -> page: 34  filter: '*'
/my-route                       -> page:  1  filter: '*'
/my-route?page=10&filter=test   -> page: 10  filter: 'test'
/my-route?page=10&filter=10     -> page: 10  filter: '10'
/my-route?page=*&filter=*       -> page:  1  filter: '*'

您也可以在视图定义的URL上使用方括号,此输入将进入视图函数参数

@app.route('/<name>')
def my_view_func(name):
    return name

使用^{}获取查询字符串的分析内容:

from flask import request

@app.route(...)
def login():
    username = request.args.get('username')
    password = request.args.get('password')

相关问题 更多 >