1. 程式人生 > 其它 >flask-請求-請求引數-轉換器

flask-請求-請求引數-轉換器

需求:提取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()