5、flask-路由引數

little小新發表於2024-07-06

這裡延續上一節的內容

# 路由 + 檢視函式

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

相關文章