1.安裝
pip install flask2.書寫規範pip install flask-restful
狀態碼3.flask-restful外掛程式
flask-restful
是乙個專門用來寫restful api
的乙個外掛程式。使用他可以快速的整合restful api
的後台以及純api
的後台中,這個外掛程式可以幫助我們節省很多時間。當然,如果在普通的**中,這個外掛程式就顯得有些雞肋了,因為在普通的網頁開發中,是需要去渲染html**的,而flask-restful
在每個請求中都是返回json
格式的資料。
1.從flask_restful中匯入api,來建立乙個api物件。2.寫乙個檢視函式,讓他繼承自resource,然後在這個裡面,使用你想要的請求方式來定義相應的方法,比如你 想要將這個檢視只能採用post請求,那麼就定義乙個post方法。3.使用api.add_resource新增檢視與url。
class loginview(resource):def post(self,username=none):
return
api.add_resource(loginview,'/login//','/regist/')#對映到url
如果使用flask-restful
,那麼定義檢視函式的時候,就要繼承自flask_restful.resource
類,然後再根據當前請求的method
來定義相應的方法。比如期望客戶端是使用get
方法傳送過來的請求,那麼就定義乙個get
方法。類似於methodview
。
注意事項:
endpoint
是用來給url_for
反轉url
的時候指定的。如果不寫endpoint
,那麼將會使用檢視的名字的小寫來作為endpoint
。
add_resource
的第二個引數是訪問這個檢視函式的url
,這個url
可以跟之前的route
一樣,可以傳遞引數。並且還有一點不同的是,這個方法可以傳遞多個url
來指定這個檢視函式。
如果你想返回json資料,那麼就使用flask_restful
的方式。
4.引數解析
flask-restful
外掛程式提供了類似wtforms
來驗證提交的資料是否合法的包,叫做reqparse
。以下是基本用法:
parser = reqparse.requestparser()parser.add_argument('username',type=str,help='請輸入使用者名稱')
args = parser.parse_args()
add_argument
可以指定這個欄位的名字,這個欄位的資料型別等。以下將對這個方法的一些引數做詳細講解:
default
:預設值,如果這個引數沒有值,那麼將使用這個引數指定的值。
required
:是否必須。預設為false
,如果設定為true
,那麼這個引數就必須提交上來。
type
:這個引數的資料型別,如果指定,那麼將使用指定的資料型別來強制轉換提交上來的值。
choices
:選項。提交上來的值只有滿足這個選項中的值才符合驗證通過,否則驗證不通過。
help
:錯誤資訊。如果驗證失敗後,將會使用這個引數指定的值作為錯誤資訊。
trim
:是否要去掉前後的空格。
其中的type
,可以使用python
自帶的一些資料型別,也可以使用flask_restful.inputs
下的一些特定的資料型別來強制轉換。比如一些常用的:
url
:會判斷這個引數的值是否是乙個url
,如果不是,那麼就會丟擲異常。
regex
:正規表示式。
date
:將這個字串轉換為datetime.date
資料型別。如果轉換不成功,則會丟擲乙個異常。
在藍圖中,如果使用flask-restful
,那麼在建立api
了,而是使用藍圖。如果在flask-restful
的檢視中想要返回html
**,或者是模版,那麼就應該使用api.representation
這個裝飾器來定義乙個函式,在這個函式中,應該對html
**進行乙個封裝,再返回。示例**如下:
@api.representation('text/html')def output_html(data,code,headers):
print(data)
# 在representation裝飾的函式中,必須返回乙個response物件
resp = make_response(data)
return resp
class listview(resource):
def get(self):
return render_template('index.html')
api.add_resource(listview,'/list/',endpoint='list')
入門級演算法
今天我想記錄的是一些關於入門級別的演算法。將乙個字串s對映為乙個整數,使得該整數可以唯一的代表字串s。先假設字串均由大寫字母a z構成,不妨設a z為0 25,即將26個大寫字母對應到了二十六進製制中。按照將二十六進製制轉換為十進位制的思路,即可實現將字串對映為整數的需求。題目 給出n個字串 恰好由...
PKI入門級介紹
隨著電子商務的迅速發展,資訊保安已成為焦點問題之一,尤其是網上支付和網路銀行對資訊保安的要求顯得更為突出。為了能在網際網路上開展安全的電子商務活動,公開金鑰基礎設施 pki,public key infrastructure 逐步在國內外得到廣泛應用。我們是否真的需要 pki pki 究竟有什麼用?...
PKI入門級介紹
隨著電子商務的迅速發展,資訊保安已成為焦點問題之一,尤其是網上支付和網路銀行對資訊保安的要求顯得更為突出。為了能在網際網路上開展安全的電子商務活動,公開金鑰基礎設施 pki,public key infrastructure 逐步在國內外得到廣泛應用。我們是否真的需要 pki pki 究竟有什麼用?...