有没有办法在flask中添加多个变量(变量规则)

2024-06-13 00:27:56 发布

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

有没有一种方法可以使用多个变量在Python Flask中构建动态URL

正常情况是:

from flask import Flask
app = Flask(__name__)

@app.route('/hello/<name>')
def hello_name(name):
   return 'Hello %s!' % name

if __name__ == '__main__':
   app.run(debug = True)

我想问的是:

from flask import Flask
app = Flask(__name__)

@app.route('/hello/<name><your_pp><etc>')
def hello_name(name):
   return 'Hello %s!' % name 

if __name__ == '__main__':
   app.run(debug = True)

我们是否可以使用int:your_pp等转换器


Tags: runnamefromdebugimportappflaskhello
2条回答

您只需要在方法定义中指定不同的参数

@app.route('/hello/<name><int:your_pp><float:etc>')
def hello_name(name, your_pp, etc):
    return 'Hello %s %d %f!' % (name, your_pp, etc)

但这会导致问题,因为代码可能会以不同的方式分割希望,最好使用分隔符,/更常见

@app.route('/hello/<name>/<int:your_pp>/<float:etc>')
def hello_name(name, your_pp, etc):
    return 'Hello %s %d %f!' % (name, your_pp, etc)

使用类似mydomain.com/hello/johnname/123/456.789

我猜您正在尝试这样的查询: host:port/hello?name=john&last_name=doe ...

如果是,来自flask的案例请求可以将其封装到字典中,如下所示:

from flask import request
@app.route('/hello')
def query():
    args = request.args
    print(args)
    return "example string", 200

打印值如下所示: ImmutableMultiDict([('name', 'john'), ('last_name', 'doe'))])

这篇文章将帮助你更多 https://pythonise.com/series/learning-flask/flask-query-strings

相关问题 更多 >