2021 07 11

python での JSON の扱いについてわすれるのでメモ。 json.dumps json.dumps()に入れた変数を JSON string に変換する。 >>> import json >>> data = {'abc': 123} >>> type(data_json) <class 'str'> >>> data_json = json.dumps(data) >>> data_json '{"abc": 123}' json.loads json.loads(JSON string) で python dictionary に型を変換する。 >>> import json >>> data = {'abc': 123} >>> type(data_json) <class 'str'> >>> data_json = json.dumps(data) >>> data_json '{"abc": 123}' >>> load_json = json.loads(data_json) >>> load_json {'abc': 123} >>> type(load_json) <class 'dict'> >>> load_json['abc'] 123 Django Rest Framework...

July 9, 2021

2021 07 08

DRFでオブジェクトを作成したとき、 デフォルトで、 作成したオブジェクトを含むディクショナリー型でデータを返す。 keys() Pythonの組み込み関数。 keys() dict = {"A": "Abalone", "B": "bluefin tuna", "C": "cod"} print(dict.keys()) >>>dict_keys(['A', 'B', 'C']) dict = {"A": "Abalone", "B": "bluefin tuna", "C": "cod"} for key in dict.keys(): print(key) >>>A >>>B >>>C getattr Pythonの組み込み関数。 getattr(object, name[,default]) 第一引数に指定された object の値を返す。 第二引数の name は文字列である必要があり、文字列が object の属性の一つの名前であった場合、戻り値はその属性の値になる。 query_params request.GETと同義語。 DRF では query_params を使用することを推奨。 DRF ドキュメント

July 8, 2021

Django Rest Framework

APIClient APIClientは Djang の Clientクラスを拡張したもの .get()、.post()、.put()、.pathch()、.delete()、.head()、.options()が利用可能。 例 from rest_framework.test import APIClient client = APIClient() client.post('/notes/', {'title': 'new idea'}, format='json') status from rest_framework import status 人間が読むことができるステータスコードを含む。 テストの際に理解が簡単 github refresh_from_db() モデルのバリューをリフレッシュ使うのに使用。 このメソッドが引数なしで呼ばれると モデル上の遅延評価されない全てのフィールドはその時点でデータベース上に存在する値に更新されます。 キャッシュされたリレーションはリロードされたインスタンスに削除される。 Django ドキュメント force_authenticate() テストする際に強制的に認証をリクエストする force_authenticate(request, user=None, token=None)が呼ばれる時 user か token のいずれか、または両方を設定できる。 GenericViewSet GenericViewSet クラスは GenericAPIView の継承し、get_object、get_queryset を提供し、デフォルトでは GenericViewSetクラスを使用するには、クラスをオーバーライドして、必要なmixinクラスをミックスインするか、アクションの実装を明示的に定義します。 DRF ドキュメント ModelSerializer ModelSerializerクラスはSerializer class とモデルの一致するフィールドを自動で作成する ModelSerializer クラスは Serializer と同じだが、 *モデルを基にフィールドを自動で作成する *unique_together のようなserializerのためのvalidatorを自動で作成する *デフォルトで .create() .update() 含む。...

July 7, 2021