この記事ではRest Frameworkについて解説します。技術的な詳細に入る前に、Rest Framework とは何かについて少し説明しましょう。
Rest Framework は、モバイル アプリケーション、Web アプリケーション、デスクトップ アプリケーションの両方に共通のバックエンドをコーディングできるようにする高度なフレームワークです。たとえば、モバイル アプリケーションと Web アプリケーションの両方で、Rest Framewok でコーディングしたバックエンド サーバーを使用できます。
Rest Framework と Angular、React、Vue などのフロントエンド テクノロジを使用してアプリケーションを開発できます。 Rest Framework はプログラミングにおける共通の構造で応答を提供するため、これらの出力を Angular または React で使用できます。では、これらの出力にはどのような種類があるのでしょうか?もちろんJSONのような構造です。もちろん、オプションで、これらの出力を異なる構造でフロントエンド側に送信することもできます。それではコーディングに移りましょう
プロジェクトの作成
1) django-admin startproject projeName
プロジェクトを作成しました。それでは、プロジェクトを実行してみましょう。
2) python manage.py runserver
次に、データベースに必要なテーブルを作成するために必要なコマンドを記述しましょう。
3) python manage.py 移行
作成したアプリケーションを settings.py ファイルの下の INSTALLED_APPS ディレクトリに追加することを忘れないでください。
すべて大丈夫です。これで、残りのフレームワークに必要な手順に進むことができます。
Rest Framework をコンピューターにインストールするには、ターミナルで次のコマンドを実行する必要があります。
1) pip インストール djangorestframework
たとえば;
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework'、
'ポストアップ'、
]
Rest フレームワークを追加したので、API の作成を開始できます。これを行うには、作成したアプリケーション フォルダー内に API というフォルダーといくつかのファイルを作成する必要があります。これらのファイルを追加しましょう:
あなたのプロジェクト/
API/
init.py
views.py
urls.py
シリアライザー.py
** init.py** ファイルを使用して、このフォルダーが Python モジュールであることを示します
views.py ** ファイルは、受信リクエストに送信する回答を提供するクラスまたは関数を記述するファイルです。
**urls.py ファイルは、Django の構造から推測できるように、API URL を設定するファイルです。
serializers.py ファイルは、受信クエリ セットを必要な形式 (JSON など) に配置する構造を記述するファイルです。これについては、徐々に詳しく説明していきます。
まず、プロジェクトのメイン フォルダーに用意されている urls.py ファイルに移動し、作成した API フォルダーに従って URL パスを定義しましょう。
urlpatterns = [
path('admin/', admin.site.urls),
path("api/post/",include("YOUR_PROJECT.api.urls",namespace="post")),
]
管理者パスはすでにあります。また、新しいパスを api/post として追加しました。 Include メソッドを使用して、api/post/ に送信されるリクエストを、作成した API フォルダー内の URL ファイルにリダイレクトしました。
それでは、作成した投稿のモデルを簡単に書いてみましょう。 YOUR_PROJECT フォルダー内の models.py ファイルに行きましょう。
クラス PostModel(models.Model):
著者 = models.ForeignKey(User,on_delete=models.CASCADE)
タイトル = models.CharField(max_length=50)
コンテンツ = models.TextField()
ドラフト = models.BooleanField(default=False)
ModifiedDate = models.DateTimeField(editable=False)
モデルを作成したら、ターミナルに必要なコードを書いてデータベースにテーブルを作成しましょう。
python manage.py makemigrations
これらのコードを使用して、データベースにテーブルを作成するために必要な Python ファイルを作成しました。次のコマンドを実行してテーブルを作成します。
*python manage.py 移行 *
次に、作成した YOUR_PROJECT ディレクトリの下の api フォルダーにある空の urls.py ファイルを見てみましょう。
django.urls インポート パスから
.views から YourProjectAPIView をインポート
app_name="投稿"
urlpatterns = [
path("list/",YourProjectAPIView.as_view(),name="your_project"),
]
まず、app_name=”post” でアプリケーション名を指定しました。
ここで、まだ作成していないビューをインポートし、パスに従って使用してみました。 YOUR_PROJECT/api ディレクトリの下の views.py ファイルに名前を書いたビューをすぐに作成しましょう。
まず、データベース内のすべての投稿を JSON 構造のリクエストとともに送信するビューを作成しましょう。
POSTAPP.models から PostModel をインポート
rest_framework.generics からインポート ListAPIView
クラス PostListAPIView(ListAPIView):
serializer_class = PostSerializer
queryset = PostModel.objects.all()
ここで何をしたか説明しましょう。 ListAPIView クラスを使用してビューを作成しました。これは、Rest Framework でのリスト処理の準備ができています。まず、queryset 変数でどのモデルを返すかを決定します。そして、このモデル、つまりクエリ セットからのデータをシリアル化するシリアライザー クラスを指定する必要があります。結局のところ、クエリセットを相手に送信することはありません。シリアル化された JSON オブジェクトを送信します。クエリ セットを JSON オブジェクトに変換する構造は、これから作成するシリアライザーになります。
現時点では、serializer_class 変数に PostSerializer というシリアライザーを作成しました。このシリアライザーを同じディレクトリのserializers.pyファイルに作成します。今すぐ作成してみましょう。
rest_framework インポートシリアライザーから
クラス YourProjectSerializer(serializers.ModelSerializer):
クラスメタ:
モデル = PostModel
フィールド = ["著者","タイトル","内容",'下書き','修正日']
以上がDjango Rest フレームワークとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。