flask-請求-請求引數-轉換器
阿新 • • 發佈:2022-03-23
需求:提取url地址中的固定引數
即ip和port後邊的地址,例如http://127.0.0.1:5000/2022 2022即為固定引數
http://127.0.0.1:8000/user/?name=aa 屬於引數
如何查詢地址?
url位址列中,問號後面、等號傳值、與號分隔;
flask的語法:<>,裡邊上形餐名稱,必須傳給檢視函式
原理:轉換器,類似django中的正則表示式
1 from flask import Flask 2 from werkzeug.routing import BaseConverter 3 4 app = Flask(__name__) 5 6 #如果只接收整形值 此處<int:形參> 內建轉換器7 @app.route('/<int:temp>') 8 9 def index(temp): 10 return 'hello %s' % temp 11 12 if __name__ == '__main__': 13 print(app.url_map) 14 app.run()
一、請求資訊
1、固定引數
認識轉換器---Flask中6種預設轉換器:整型值、字串、浮點、any、path、uuid
(1)內建轉換器
(2)自定義轉換器:當內建轉換器無法滿足需求,可以自定義轉換器
步驟:
- 定義轉換器類,繼承自baseconverter
- 把自定義的轉換器類,新增到轉換器字典容器中
- 在裝飾器中使用轉換器
1 #目的來實現引數是手機號 2 #1、定義繼承自baseconverter的類 3 class RexPhoneConverter(BaseConverter): 4 rex = r'1[3-9]\d{9}' 5 6 #2、新增自定義的轉換器類到轉換器字典容器中 7 app.url_map.converters['phone'] = RexPhoneConverter 8 9 #3、在裝飾器中使用轉換器 10 @app.route('user/<phone:temp>')
2、其他引數
使用request物件來獲取
1 from flask import Flask,request 2 3 app = Flask(__name__) 4 @app.route('/') 5 def phone1(): 6 # url: http://127.0.0.1:5000/?phone=123 7 # 執行的結果為123 url中的字串args 8 phone = request.args.get('phone') 9 return 'hello {}'.format(phone) 10 #表單 11 user = request.form.get('user') 12 pwd = request.form.get('pwd') 13 print('user:{},pwd:{}'.format(user,pwd)) 14 #其他 比如method url headers等 15 print(request.method) 16 print(request.url) 17 print(request.headers) 18 #檔案,並儲存在當前目錄中名字叫new.jpg 19 @app.route('/image',methods=['GET','POST']) 20 def save_img(): 21 img = request.files.get('image') 22 print('image:{}'.format(img)) 23 img.save('./new.jpg') 24 if __name__ == "__main__": 25 app.run()