flask restful使用講解

2021-10-04 04:49:34 字數 2769 閱讀 5914

# flask-restful筆記:

### 安裝:

flask-restful需要在flask 0.8以上的版本,在python2.6或者python3.3上執行。通過pip install flask-restful即可安裝。

### 基本使用:

1. 從`flask_restful`中匯入`api`,來建立乙個`api`物件。

2. 寫乙個檢視函式,讓他繼承自`resource`,然後在這個裡面,使用你想要的請求方式來定義相應的方法,比如你想要將這個檢視只能採用`post`請求,那麼就定義乙個`post`方法。

3. 使用`api.add_resource`來新增檢視與`url`。

示例**如下:

```python

class loginview(resource):

def post(self,username=none):

return

api.add_resource(loginview,'/login//','/regist/')

```注意事項:

* url還是跟之前的一樣,可以傳遞引數。也跟之前的不一樣,可以指定多個url。

* endpoint是用來給url_for反轉url的時候指定的。如果不寫endpoint,那麼將會使用檢視的名字的小寫來作為endpoint。

### 引數驗證:

flask-restful外掛程式提供了類似wtforms來驗證提交的資料是否合法的包,叫做reqparse。以下是基本用法:

```python

parser = reqparse.requestparser()

parser.add_argument('username',type=str,help='請輸入使用者名稱')

args = parser.parse_args()

```add_argument可以指定這個欄位的名字,這個欄位的資料型別等。以下將對這個方法的一些引數做詳細講解:

1. default:預設值,如果這個引數沒有值,那麼將使用這個引數指定的值。

2. required:是否必須。預設為false,如果設定為true,那麼這個引數就必須提交上來。 3. type:這個引數的資料型別,如果指定,那麼將使用指定的資料型別來強制轉換提交上來的值。

4. choices:選項。提交上來的值只有滿足這個選項中的值才符合驗證通過,否則驗證不通過。

5. help:錯誤資訊。如果驗證失敗後,將會使用這個引數指定的值作為錯誤資訊。

6. trim:是否要去掉前後的空格。

其中的type,可以使用python自帶的一些資料型別,也可以使用flask_restful.inputs下的一些特定的資料型別來強制轉換。比如一些常用的:

1. url:會判斷這個引數的值是否是乙個url,如果不是,那麼就會丟擲異常。

2. regex:正規表示式。

3. date:將這個字串轉換為datetime.date資料型別。如果轉換不成功,則會丟擲乙個異常。

# flask-restful筆記2:

對於乙個檢視函式,你可以指定好一些字段用於返回。以後可以使用orm模型或者自定義的模型的時候,他會自動的獲取模型中的相應的字段,生成json資料,然後再返回給客戶端。這其中需要匯入flask_restful.marshal_with裝飾器。並且需要寫乙個字典,來指示需要返回的字段,以及該字段的資料型別。示例**如下:

```python

class profileview(resource):

resource_fields =

@marshal_with(resource_fields)

def get(self,user_id):

user = user.query.get(user_id)

return user

```在get方法中,返回user的時候,flask_restful會自動的讀取user模型上的username以及age還有school屬性。組裝成乙個json格式的字串返回給客戶端。

### 重新命名屬性:

很多時候你面向公眾的欄位名稱是不同於內部的屬性名。使用 attribute可以配置這種對映。比如現在想要返回user.school中的值,但是在返回給外面的時候,想以education返回回去,那麼可以這樣寫:

```python

resource_fields =

```### 預設值:

在返回一些欄位的時候,有時候可能沒有值,那麼這時候可以在指定fields的時候給定乙個預設值,示例**如下:

```python

resource_fields =

```### 複雜結構:

有時候想要在返回的資料格式中,形成比較複雜的結構。那麼可以使用一些特殊的字段來實現。比如要在乙個欄位中放置乙個列表,那麼可以使用fields.list,比如在乙個字段下面又是乙個字典,那麼可以使用fields.nested。以下將講解下複雜結構的用法:

```python

class articleview(resource):

resource_fields = ),

'tags': fields.list(fields.nested()),

'read_count': fields.integer(default=80)

}@marshal_with(resource_fields)

def get(self,article_id):

article = article.query.get(article_id)

return article

```

flask restful使用總結

flask restful是乙個用於快速建立restful api介面的flask擴充套件。使用flask restful可以很快速方便地建立乙個restful風格的介面應用程式。1 安裝 pip install flask restful 2 全部 from flask import flask ...

使用 flask restful 來開發API

在雙十一買了阿里云云小蜜的培訓課程,花了幾天學了一下,不過考了兩次都沒有考過,但是能夠熟練使用雲小蜜來搭建業務了,為了整合一些外部資料,例如天氣,交通,電影啥的,需要封裝處理一下第三方api或者呼叫自己的資料庫。最後的需求就是變成restful api了,可以把這個請求位址直接放到雲小蜜裡邊。res...

Flask RESTful 的介紹和基本使用

flask restful 是乙個 flask 擴充套件,它新增了快速構建 rest api 的支援。環境安裝 終端執行 pip install flask restful文件 點我檢視官方文件 點我檢視中文翻譯 構建restapi 使用 flask restful 構建restapi只需要進行三步...