Django フレームワークの学習概要

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を含む名前付きフォームを定義しますnameemail

ジャンゴ管理者

  • バックグラウンド管理インターフェイスを作成するために使用されます。

コード例:

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 の公式ドキュメントまたは関連チュートリアルを参照して詳細を学習することをお勧めします。

おすすめ

転載: blog.csdn.net/m0_57021623/article/details/132939886