5、flask-路由参数
这里延续上一节的内容
# 路由 + 视图函数
from flask import Blueprint
# from models import *
#蓝图
# 创建蓝图对象
# 第一个参数:蓝图的名字
# 第二个参数:蓝图的包名
blue = Blueprint('user', __name__,)
@blue.route('/') # 路由
def index():
return 'user index'
# 路由参数
# string 接收任何没有斜杠('/')的文件(默认)
# int 接收整数
# float 接收浮点数
# path 接收任何文件,包括斜杠('/')
# uuid 接收UUID、唯一码、一种生成规则
# any 接收任何值,但是必须包含在指定的列表中
# slash 接收斜杠('/')
#string
# <name>:为接受的变量参数,如果不指定参数类型默认为string
# @blue.route('/get/<string:name>/')
@blue.route('/get/<name>/') #默认接收字符串
#浏览器中输入:http://127.0.0.1:5000/get/xiaoxin/ 那么会打印出xiaoxin、name=xiaoxin
def get_string(name):
print(name)
return name
#int
@blue.route('/get/<int:age>/')
def get_int(age):
print(age)
return str(age) #这里不能直接返回int类型、因为flask默认返回的是字符串类型
#float
@blue.route('/get/<float:score>/')
def get_float(score):
print(score)
return str(score)
#path 支持/的字符串
#http://127.0.0.1:5000/path/hell/123/ name=hell/123
@blue.route('/path/<path:name>/')
def get_path(name):
print(name)
return str(name)
# uuid: 唯一码、默认接收36位长度的字符串、如果不是36位长度的UUID会报错
#26be2214-aa07-48ec-8b8d-3aafdceb678c
#输入:http://127.0.0.1:5000/uuid/26be2214-aa07-48ec-8b8d-3aafdceb678c/
@blue.route('/uuid/<uuid:uid>/')
def get_uuid(uid):
print(uid)
return str(uid)
#获取uuid
import uuid
@blue.route('/getuuid/')
def get_uuid2():
return str(uuid.uuid4()) #26be2214-aa07-48ec-8b8d-3aafdceb678c
# any:只能从列出的项目中选择一个 (xiaoxin,xiaoming,xiaohong)
@blue.route('/any/<any(xiaoxin,xiaoming,xiaohong):name>/')
def get_any(name):
print(name)
return str(name)
#请求方法: methods
# GET:获取数据 ,默认是get方法
# POST:添加数据 ,默认不支持post,要在methods中指定即可
# PUT:更新数据
# DELETE:删除数据
# HEAD:获取报文头
# OPTIONS:获取请求方式
# @blue.route('/get/')
@blue.route('/rule/', methods=['GET', 'POST']) #这里要同时指定GET和POST
def get_method():
return 'LOL'
#输入:http://127.0.0.1:5000/rule/ 是GET请求,所以会打印出GET