flask路由参数
1.路由参数
(1)string
string 接收任何没有斜杠('/')的字符串 (默认)
@u.route('/string/<string:name>/')
def get_string(name):
print(type(name)) # <class 'str'>
return name
(2)int
int 只接收整型
@app.route('/int/<int:id>/')
def get_int(id):
print(type(id)) # <class 'int'>
return str(id)
return 不能返回整型,只能返回字符串,字典,数字,元组
(3)float
float 接收浮点型
@app.route('/float/<float:id>/')
def get_float(id):
print(type(id)) # <class 'float'>
return str(id)
访问该路由时必须为浮点数 如1.1 如果是11就会匹配不到路由
(4)path
path 接收路径,可接收斜杠('/')
@app.route('/path/<path:id>/')
def get_path(id):
print(type(id)) # <class 'str'>
return str(id)
'''
http://127.0.0.1:5000/path/111/
id = 111
http://127.0.0.1:5000/path/11/1/
id = 11/1
'''
(5)uuid
uuid 只接收uuid字符串,唯一码,一种生成规则
'''
uuid是特殊格式的字符串
'''
@app.route('/uuid/<uuid:id>/')
def get_uuid(id):
print(type(id)) # <class 'uuid.UUID'>
return str(id)
@app.route('/getuuid/')
def get_uuid2():
'''
获取uuid
:return: uuid
'''
import uuid
return str(uuid.uuid4())
# ae37f3ef-bbad-4368-aa84-9029e9908746
(6)any
any 从列表中选则一个
@app.route('/any/<any(apple,orange,banana):id>/')
def get_any(id):
print(type(id)) # <class 'str'>
return str(id)
'''
也就是说接收的参数已经固定死了
http://127.0.0.1:5000/any/apple/
http://127.0.0.1:5000/any/orange/
http://127.0.0.1:5000/any/banana/
这些都是可以匹配到
其他的都匹配不到
http://127.0.0.1:5000/any/111/ 这样的就不行 会报Not Found
'''
2.methods请求方式
http 最大的作用就是确定了请求和响应数据的格式。常见的请求方式:
get 方法
发送一个请求来取得服务器上的某一资源。
post 方法
向 url 指定的资源提交数据或附加新的数据。
put 方法
put 方法跟 post 方法很像,也是向服务器提交数据,但是 put 方法指向了资源在服务器上的位置,而 post 方法没有。
head 方法
只请求页面的首部。
delete 方法
删除服务器上的某资源。
options 方法
options 方法用于获取当前 url 所支持的方法。如果请求成功,会有一个 allow 的头包含类似 get、post 这样的信息。
trace 方法
trace 方法被用于激发一个远程的,应用层的请求消息回路。
connect 方法
把请求连接转换到透明的 tcp/ip 通道。
(1)限制请求方式
@app.route('/any/<any(apple,orange,banana):id>/',methods=['POST','DELETE']) # 加了methods参数后匹配这个路由时,只有POST和DELETE请求才能成功
def get_any(id):
print(type(id)) # <class 'str'>
return str(id)