DRF知識を終えて

DRF学習

DRF:ジャンゴrestframework(フルネーム)

DRFフレームワークのアクションは、インタフェースを記述するために使用されます

インターフェース:明確な要求は、バックグラウンドデータを取得するための要求のURLリンクに応答して、所望の背景に対応するパラメータが提供され

(コア部:モード要求、アドレス要求、要求パラメータ、応答結果)

書き込みインタフェース:特定のルール(仕様)の規則的な実施形態による、要求を開発しながら、URLリンクの記述を参照して、要求データおよび応答結果

ドキュメントインタフェース:ビューにフロントとリアエンド開発者とテスターに​​提供され、

(ドキュメントYAPIプラットフォームインターフェース書き込み、ポストマン・ツールのインタフェースアクセス)

インタフェース仕様:

WEBAPIインタフェース仕様:安らか

例:
https://api.oldboy.com/v2/books/?limit=3&ordering=-price&page=2
https://api.oldboy.com/v2/books/(pk)/
#1.api关键字标识接口url
#2.在url链接中标识数据的版本  v
#3.前后台交互的数据资源(复数形式,不能带有动词,动词可以有特殊含义,但不能与资源拼接)
#4.请求方式决定资源操作
        get请求: 取   又分为单查群查
        post请求: 增   单增群增
        put请求: 改(全局)  单改群改
        patch请求: 改(局部)  单改群改
        delete请求: 删  单删群删
    由此形成十大接口
#5. 响应状态码
正常响应2xx:200  常规请求;201 创建成功
重定向响应3xx:301 永久重定向; 302  暂时重定向
客服端异常4xx:403 请求无权限;404 请求路径不存在;405 请求方法不存在
服务端异常5xx:500 服务器异常
#6.响应结果
响应的数据要有状态码,状态信息以及数据本身
```
{
     "status": 0,#状态
     "msg": "ok",#  message信息
     "results":[  #结果
        {
             "name":"肯德基(罗餐厅)",
             "location":{  #位置
            1     "lat":31.415354,    #latitude 纬度
                 "lng":121.357339    #longtitude 经度
              },
             "address":"月罗路2380号",  #地址
             "province":"上海市",  # 省份
             "city":"上海市",   #城市
             "area":"宝山区",   #区
             "street_id":"339ed41ae1d6dc320a5cb37c",  # 街道_id
             "telephone":"(021)56761006",  #手机号
             "detail":1,   #详情
             "uid":"339ed41ae1d6dc320a5cb37c"    #唯一标识符
         }
         ...
         ]
}
```
基于原生django书写满足restful规范的接口:两个url 对应 一个视图类 完成 十大接口
    /api/users/
    /api/users/(?P<pk>\d+)/
    class User(View):
        get|post|put|patch|delete方法

CBV要求のライフサイクル:

ルート一致=> URLリクエスト呼び出しas_view()関数を完了するas_view()は前部に要求=>先頭を処理する方法のビュー・クラスの要求分布=>詳細図を完了するために)(ビュービュー=>コールディスパッチの値を返します

インストールDRF:

ピップdjangorestframeworkをインストール

DRF入り口出典:

発送方法APIViewのRest_framework.view直視

ビュークラス継承DRF APIView:rest_framework.viewsからAPIViewインポート
バックビュー表示機能の一部が認証CSRF無効になって- csrf_exempt(ビュー):as_view DRF()メソッド読み取り
要求ディスパッチ分布()、
中を配布プロセスの実装の正面図が完成する
self.initialize_request(リクエスト、*引数:第2のパッケージ要求 、** kwargsから)
の3つの認証:self.initial(リクエスト、*引数、 ** kwargsから)
方法を示す工程図を:リクエストの後に
異例の処置:self.handle_exception(EXC)
二次包装の応答:self.finalize_response(要求、応答、 * argsを、** kwargsから)

おすすめ

転載: www.cnblogs.com/asyouwish/p/11963423.html