有没有一种方法可以在烧瓶中添加多个变量(可变规则)

时间:2020-06-20 15:27:34

标签: python flask

是否可以使用多个变量在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等转换器?

2 个答案:

答案 0 :(得分:0)

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

@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一样使用

答案 1 :(得分:0)

我猜您正在尝试执行以下查询: host:port/hello?name=john&last_name=doe ...

如果flask的case请求可以将其包装成这样的字典:

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