Web 開発に Python の Django フレームワークを使用するプログラマーは、次の点を理解する必要があります。
環境設定とプロジェクトの初期化
注文:
pip install django
django-admin startproject myproject
分析:
- pip を使用して Django をインストールします。
- 次を使用して
django-admin startproject
新しい Django プロジェクトを初期化します。
アプリの作成
注文:
cd myproject
python manage.py startapp myapp
分析:
- プロジェクトフォルダーに移動します。
python manage.py startapp
新しいアプリケーションを作成するために使用します。
データベースの移行
注文:
python manage.py makemigrations
python manage.py migrate
分析:
makemigrations
新しい移行ファイルが作成されます。migrate
これらの移行をデータベースに実際に適用します。
開発サーバーを起動します
注文:
python manage.py runserver
分析:
開発サーバーを通常はポート 8000 で起動します。
スーパー ユーザーの作成 (バックグラウンド管理用)
注文:
python manage.py createsuperuser
分析:
新しいスーパー ユーザーを作成して、Django の管理バックエンドにログインします。
Django モデル (モデル)
- データ構造とデータベース テーブル マッピングを定義します。
コード例:
class Book(models.Model):
title = models.CharField(max_length=100)
author = models.ForeignKey(Author, on_delete=models.CASCADE)
分析:
という名前のモデルがBook
フィールドと でtitle
作成されますauthor
。
Django ビュー (ビュー)
- ユーザーのリクエストを処理し、応答を返します。
コード例:
from django.http import HttpResponse
def hello_world(request):
return HttpResponse('Hello, world!')
分析:
「Hello, world!」を返すシンプルなビューを作成しました。
Django テンプレート (テンプレート)
- HTML ページを動的に生成するために使用されます。
コード例:
<!DOCTYPE html>
<html>
<head>
<title>{
{ title }}</title>
</head>
<body>
<h1>{
{ header }}</h1>
</body>
</html>
分析:
変数を受け入れて HTML を動的に生成する単純なtitle
テンプレートheader
。
Django フォーム (フォーム)
- ユーザー入力を処理するために使用されます。
コード例:
from django import forms
class ContactForm(forms.Form):
name = forms.CharField(max_length=100)
email = forms.EmailField()
分析:
およびフィールドContactForm
を含む名前付きフォームを定義します。name
email
ジャンゴ管理者
- バックグラウンド管理インターフェイスを作成するために使用されます。
コード例:
from django.contrib import admin
from .models import Book
admin.site.register(Book)
分析:
データに対する CRUD 操作をバックグラウンドで実行できるBook
ように、モデルを管理者バックグラウンドに登録します。Book
[リマインダー] これらは、Django フレームワークの中心となる概念と操作の一部にすぎません。より深く理解するには、ユーザー認証、ミドルウェアの使用、キャッシュ、シグナル、RESTful API の作成などの高度なトピックを学習することをお勧めします。
ユーザ認証
Django には強力なユーザー認証システムが付属しています。
注文:
python manage.py createsuperuser
分析:
これにより、Django 管理インターフェイスにアクセスできるスーパーユーザーが作成されます。
コード例:
from django.contrib.auth.decorators import login_required
@login_required
def my_view(request):
...
分析:
デコレータを使用して@login_required
ビューを保護し、ログインしたユーザーのみがビューにアクセスできるようにします。
ミドルウェアを使用する
ミドルウェアは、リクエストとレスポンスを処理するフックです。
コード例:
class SimpleMiddleware:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
response = self.get_response(request)
return response
分析:
これは、単にリクエストとレスポンスを渡すだけで何も行わない、非常に基本的なミドルウェアの例です。
キャッシュ
Django は複数のキャッシュ バックエンド (memcached、redis など) をサポートしています。
コード例:
from django.views.decorators.cache import cache_page
@cache_page(60 * 15)
def my_view(request):
...
分析:
@cache_page
デコレーターはビューの出力をキャッシュし、パラメーターはキャッシュする秒数 (この場合は 15 分) です。
信号
シグナルは、特定のイベントが発生したときに、分離されたアプリケーションに通知できるようにするために使用されます。
コード例:
from django.db.models.signals import pre_save
from django.dispatch import receiver
from myapp.models import MyModel
@receiver(pre_save, sender=MyModel)
def my_callback(sender, **kwargs):
...
分析:
ここでは、pre_save
シグナルを使用してMyModel
関数を保存する前に実行しますmy_callback
。
RESTful APIを作成する
Django REST フレームワークは、RESTful API を迅速に構築するための強力なライブラリです。
注文:
pip install djangorestframework
コード例:
from rest_framework import serializers, viewsets
from myapp.models import MyModel
class MyModelSerializer(serializers.ModelSerializer):
class Meta:
model = MyModel
fields = '__all__'
class MyModelViewSet(viewsets.ModelViewSet):
queryset = MyModel.objects.all()
serializer_class = MyModelSerializer
分析:
MyModelSerializer
という名前のシリアライザーは、MyModel
のインスタンスを JSON にシリアル化するために定義されています。- という名前のビュー セットは、
MyModelViewSet
基本的な CRUD 操作を処理するために定義されています。
上記は基本的な紹介と高度なトピックの簡単な例にすぎず、各トピックには多くの詳細で高度な用途があります。特定のトピックに興味がある場合は、Django の公式ドキュメントまたは関連チュートリアルを参照して詳細を学習することをお勧めします。