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

 

posted @ 2024-07-06 18:52  little小新  阅读(18)  评论(0编辑  收藏  举报