Django | how to write view.py
views.ピラン
views.pyファイルは、ハンドヘルドアプリケーションのコアです.models.pyファイルがデータベースへの接続を意味する場合、ビュー.pyは、クライアントに転送されたデータをCRUDを介してデータベースに反映し、クライアントの要求に直接応答する責任を負います.
views.pyファイルを作成する前にサーバドライバ クライアント要求 と仮定する. urls.pyで作成された サーバは、フロントのリクエストを受信するために駆動する必要があります.urls.pyファイルはmanage.pyが存在するプロジェクトの最上位ディレクトリに作成すればいいです.urls.pyは、各プロジェクト、各アプリケーションに存在します.でも、トップURL.pyファイルの役割は、フロントのリクエストがどのアプリケーションを実行すべきか、どのロジック(views.py)を実行すべきかを示すことです.
turn on server
manage.pyファイルを含むプロジェクトの最上位ディレクトリで実行
フロントがなければ、サーバ開発者はアプリケーションのロジックが正しく動作しているかどうかを知ることができません.したがって、
httpieのインストール
プロジェクトディレクトリ(プロジェクトディレクトリ内のプロジェクト名と同じディレクトリ)でurlsを使用します.pyファイルを作成します.urls.pyファイルは、サーバがリクエストを発行すると、まず反応して、どのアプリケーションに接続するviewsファイルを決定するウィザードです.次のコードはdjangoのurlsです.これは、pyファイルの内蔵関数path,includeをインポートし、path関数を介してアプリケーションへのパス(url)、すなわちinclude関数内のパス(アプリケーションのurls.pyファイル)に入ることを意味します.
プロジェクト自体のurls.pyファイルの作成が完了したら、appディレクトリのurlsに続きます.pyファイルを作成する必要があります.まずpath関数をライブラリからインポートし、アプリケーションディレクトリのviewsを作成します.pyファイルからクラスをインポートします.
as_view()
クラスのインスタンスを作成してurlのパスを設定します.
json
JavaScript Object Notationの略として、JS構文に従ってデータをグループ化して渡す形式
View
djanogoのviewsモジュールのclass View
HttpResponse
class HttpRequest,ページロード時に要求メタデータを含むオブジェクトのclassを生成する
JsonResponse
応答jsonファイルによって符号化された応答をHttpResponseのサブクラスのクラスとする
json.loads()
Pythonがクライアントからの応答のjsonフォーマットデータを読み取ることができるように、データ間を切り替える方法.
Model.objects.create()
データベース内のモデルのテーブルにLowを追加するクエリー文.
結果
httpieを介してクライアントリクエストが発行されたと仮定してサーバを開きます.
サーバ接続
サーバリクエスト
サーバリクエスト
飲料や食品を格納するmenu表に「酒類」という新しいデータが登場した.
views.pyファイルは、ハンドヘルドアプリケーションのコアです.models.pyファイルがデータベースへの接続を意味する場合、ビュー.pyは、クライアントに転送されたデータをCRUDを介してデータベースに反映し、クライアントの要求に直接応答する責任を負います.
views.pyファイルを作成する前に
turn on server
manage.pyファイルを含むプロジェクトの最上位ディレクトリで実行
$ python manage.py runserver
request from Clientフロントがなければ、サーバ開発者はアプリケーションのロジックが正しく動作しているかどうかを知ることができません.したがって、
httppie
を介してサーバに要求を送信し、論理が正常に動作しているかどうかを検証することができる.httpieのインストール
$ brew install httpie
サーバリクエスト$ http GET(혹은 POST) localhost:8000/경로(ex. 앱명)
urls.pyの作成プロジェクトディレクトリ(プロジェクトディレクトリ内のプロジェクト名と同じディレクトリ)でurlsを使用します.pyファイルを作成します.urls.pyファイルは、サーバがリクエストを発行すると、まず反応して、どのアプリケーションに接続するviewsファイルを決定するウィザードです.次のコードはdjangoのurlsです.これは、pyファイルの内蔵関数path,includeをインポートし、path関数を介してアプリケーションへのパス(url)、すなわちinclude関数内のパス(アプリケーションのurls.pyファイル)に入ることを意味します.
from django.urls import path, include
urlpatterns = [
path(‘앱명’, include(‘앱명.urls’))
app内のurls.pyの作成プロジェクト自体のurls.pyファイルの作成が完了したら、appディレクトリのurlsに続きます.pyファイルを作成する必要があります.まずpath関数をライブラリからインポートし、アプリケーションディレクトリのviewsを作成します.pyファイルからクラスをインポートします.
path('')
はパス(url)、as view()関数はビューを表します.pyの対応するクラスに方向を作成します.as_view()
クラスのインスタンスを作成してurlのパスを設定します.
from django.urls import path
from .views import <views.py의 클래스명>
urlpatterns = [
path(‘’, <views.py의 클래스명>.as_view())
]
アプリケーション内のビュー.pyの作成json
JavaScript Object Notationの略として、JS構文に従ってデータをグループ化して渡す形式
View
djanogoのviewsモジュールのclass View
HttpResponse
class HttpRequest,ページロード時に要求メタデータを含むオブジェクトのclassを生成する
JsonResponse
応答jsonファイルによって符号化された応答をHttpResponseのサブクラスのクラスとする
json.loads()
Pythonがクライアントからの応答のjsonフォーマットデータを読み取ることができるように、データ間を切り替える方法.
Model.objects.create()
データベース内のモデルのテーブルにLowを追加するクエリー文.
import json
from django.views import View
from django.http import JsonResponse, HttpResponse
from .models import Menu, Category
class CategoryView(View):
def get(self, request):
result = []
categories = Category.objects.all()
for category in categories:
result.append({'id': category.id, 'name': category.name})
return JsonResponse({'result': result}, status: 200)
def post(self, request):
data = json.loads(request.body)
Menu.objects.create(name=data['name'])
return JsonResponse({'message':'SUCCESS',status=201})
class CategoryViewは、GET、POST要求に従って2つの関数を含む.結果
httpieを介してクライアントリクエストが発行されたと仮定してサーバを開きます.
サーバ接続
$ python manage.py runserver
GETサーバリクエスト
$ http GET localhost:8000/경로(ex. 앱명)
応答200 OK
は、通信が成功したことを示す.HTTP/1.1 200 OK
Content-Length: 856
Content-Type: application/json
Date: Tue, 03 Nov 2020 04:27:37 GMT
Referrer-Policy: same-origin
Server: WSGIServer/0.2 CPython/3.8.5
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
{
"result": [
{
"id": 1,
"name": "콜드브루 커피"
},
{
"id": 2,
"name": "브루드 커피"
},
{
"id": 3,
"name": "에스프레소"
}
]
}
POSTサーバリクエスト
$ http POST localhost:8000/경로(ex. 앱명) name = '주류'
応答HTTP/1.1 201 Created
Content-Length: 22
Content-Type: application/json
Date: Tue, 03 Nov 2020 08:11:10 GMT
Referrer-Policy: same-origin
Server: WSGIServer/0.2 CPython/3.8.5
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
{
"message": "SUCCESS"
}
Table of Database飲料や食品を格納するmenu表に「酒類」という新しいデータが登場した.
mysql> select * from menu;
+----+--------+
| id | name |
+----+--------+
| 1 | 음료 |
| 2 | 푸드 |
| 3 | 주류 |
+----+--------+
Reference
この問題について(Django | how to write view.py), 我々は、より多くの情報をここで見つけました https://velog.io/@tiiranocode/Django-views.py-작성テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol