flask参数的传递

flask框架的参数,不对,确切地说应该是大多数框架的参数传递都是这几种:

1. 路由传参

2. 请求头传参

3. 请求体传参

所以我们必须知道

路由传参:

指定参数:

比如说 http://localhost:8000/user/<int:id>/

在flask里面有6种固定的转换器, 分别为:

    - UnicodeConverter: 字符串
    - AnyConverter: 匹配any中任意路径, 也就是在路由中直接传<key>'
    - PathConverter: 路径, 参数中可以包含"/"
    - IntergerConverter: 整型
    - FloatConverter: 浮点型 几乎用不到
    - UUIDConverter: UUID

不过这写转换器并不能满足我们特定情况下的使用所有flask还可以自定义转换器

首先需要冲flask中导入BaseConverter, 在类中继承这个BaseConverter

from werkzeug.routing import BaseConverter
class PhoneConverter(BaseConverter):
    # regex 是用来指定正则条件的
    regex = r"1[3-9]\d{9}"

在指定完成之后就可以将这个自定义出来的类加入到我们的flask转换器中

app.url_map.converters['转换器名'] = PhoneConverter

转换器名也就是<int:id>中的int

获取方式: phone是我的转换器名

@app.route('/stus/<phone:num>/')
def index(num):
    # index中的num需要和<int:num>完全一致
    print(num)
    return "123"

查询参数传参

比如http://localhost:5000/img?good=1

good就是一个查询参数

获取方式:

request.args.get('key')或者request.args["key"]

请求头传参

获取方式:

request.headers.get('key') 或者request.headers['key']

请求体传参

获取方式:

request.form.get('key') 或者 request.form['key']

文件获取方式:

request.files.get('key')


版权声明:本文为admin3wwwww原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。