mcpField
D
Django Framework

Django Framework

github.com/pluginagentmarketplace開発6105 回インストール44 週間前に更新
リポジトリ

Django Framework について

Djangoを学ぶ人やPythonのWeb開発者向けの学習ガイドです。プロジェクト構成、ORM、認証・認可、Django REST Frameworkを扱い、ブログ、EC API、タスク管理アプリの演習を用意しています。

主な機能

  1. 01プロジェクト構成とルーティングの解説
  2. 02ORM、モデル、マイグレーション
  3. 03認証・認可と権限管理
  4. 04Django REST Frameworkの解説
  5. 053つの実践プロジェクト

活用シーン

  1. 01ユーザー認証付きブログの構築
  2. 02EC向けREST APIの開発
  3. 03共同タスク管理アプリの作成

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/pluginagentmarketplace/custom-plugin-python --skill django-framework

インストール後、Claude Code で/django-frameworkを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

assets/
config.yaml
references/
GUIDE.md
scripts/
helper.py

詳細

Django Framework

概要

迅速な開発とクリーンで実用的な設計を促進する、高水準の Python Web フレームワークである Django を習得します。機能が豊富な Django のアプローチを活用して、安全でスケーラブルな Web アプリケーションを構築する方法を学びます。

学習目標

  • Django の MVC パターンを使用してフルスタックの Web アプリケーションを構築する
  • Django ORM でデータベースモデルを設計・実装する
  • ユーザー認証と認可を実装する
  • Django REST Framework で RESTful API を作成する
  • Django アプリケーションを本番環境にデプロイする

主なトピック

1. Django の基本とプロジェクト構成
  • Django プロジェクトのセットアップと設定
  • MVT(Model-View-Template)パターンの理解
  • URL ルーティングとビュー
  • Django の設定と環境変数
  • 静的ファイルとメディアの取り扱い

コード例:

# myapp/views.py
from django.shortcuts import render
from django.http import JsonResponse
from .models import Product

def product_list(request):
    products = Product.objects.all()
    return render(request, 'products/list.html', {'products': products})

def product_api(request):
    products = Product.objects.values('id', 'name', 'price')
    return JsonResponse(list(products), safe=False)
2. Django ORM とデータベースモデル
  • モデルの定義とフィールドの種類
  • リレーションシップ(ForeignKey、ManyToMany、OneToOne)
  • QuerySet とデータベースクエリ
  • マイグレーションとスキーマ管理
  • データベースの最適化(select_related、prefetch_related)

コード例:

# models.py
from django.db import models
from django.contrib.auth.models import User

class Category(models.Model):
    name = models.CharField(max_length=100)
    slug = models.SlugField(unique=True)
    created_at = models.DateTimeField(auto_now_add=True)

    class Meta:
        verbose_name_plural = "Categories"

    def __str__(self):
        return self.name

class Product(models.Model):
    name = models.CharField(max_length=200)
    description = models.TextField()
    price = models.DecimalField(max_digits=10, decimal_places=2)
    category = models.ForeignKey(Category, on_delete=models.CASCADE)
    created_by = models.ForeignKey(User, on_delete=models.SET_NULL, null=True)
    is_active = models.BooleanField(default=True)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

    def __str__(self):
        return self.name

# Efficient querying
products = Product.objects.select_related('category', 'created_by').filter(is_active=True)
3. 認証と認可
  • ユーザー登録とログイン
  • パスワード管理
  • セッション管理
  • 権限とグループ
  • カスタムユーザーモデル
  • ソーシャル認証

コード例:

# views.py
from django.contrib.auth import authenticate, login, logout
from django.contrib.auth.decorators import login_required, permission_required
from django.shortcuts import redirect, render

def login_view(request):
    if request.method == 'POST':
        username = request.POST['username']
        password = request.POST['password']
        user = authenticate(request, username=username, password=password)
        if user is not None:
            login(request, user)
            return redirect('dashboard')
    return render(request, 'login.html')

@login_required
def dashboard(request):
    return render(request, 'dashboard.html')

@permission_required('products.add_product')
def add_product(request):
    # Only users with 'add_product' permission can access
    return render(request, 'products/add.html')
4. Django REST Framework
  • シリアライザーとバリデーション
  • ViewSet とルーター
  • 認証(JWT、トークン)
  • 権限とスロットリング
  • ページネーションとフィルタリング

コード例:

# serializers.py
from rest_framework import serializers
from .models import Product, Category

class CategorySerializer(serializers.ModelSerializer):
    class Meta:
        model = Category
        fields = ['id', 'name', 'slug']

class ProductSerializer(serializers.ModelSerializer):
    category = CategorySerializer(read_only=True)
    category_id = serializers.IntegerField(write_only=True)

    class Meta:
        model = Product
        fields = ['id', 'name', 'description', 'price', 'category', 'category_id', 'created_at']

# views.py
from rest_framework import viewsets
from rest_framework.permissions import IsAuthenticatedOrReadOnly

class ProductViewSet(viewsets.ModelViewSet):
    queryset = Product.objects.all()
    serializer_class = ProductSerializer
    permission_classes = [IsAuthenticatedOrReadOnly]

    def get_queryset(self):
        queryset = super().get_queryset()
        category = self.request.query_params.get('category')
        if category:
            queryset = queryset.filter(category__slug=category)
        return queryset

実践演習

プロジェクト 1:ブログアプリケーション

ユーザー認証機能を備えた、本格的なブログを構築します。

要件:

  • ユーザー登録とログイン
  • 投稿の作成、編集、削除
  • コメント機能
  • カテゴリーとタグ
  • 検索機能
  • 管理インターフェース

主なスキル: Django モデル、ビュー、フォーム、認証

プロジェクト 2:E コマース API

E コマースプラットフォーム向けの RESTful API を作成します。

要件:

  • カテゴリーを備えた商品カタログ
  • ショッピングカート管理
  • 注文処理
  • JWT を使用したユーザー認証
  • API ドキュメント
  • レート制限

主なスキル: Django REST Framework、シリアライザー、認証

プロジェクト 3:タスク管理システム

共同作業に対応したタスク管理アプリケーションを構築します。

要件:

  • ユーザー登録とチーム
  • タスクの作成と割り当て
  • タスクのステータス追跡
  • ファイル添付
  • リアルタイム通知
  • 権限に基づくアクセス

主なスキル: 複雑なモデル、権限、ファイルの取り扱い

評価基準

  • 適切な構成で Django プロジェクトをセットアップする
  • 正規化されたデータベーススキーマを設計する
  • CRUD 操作を効率的に実装する
  • 認証によってアプリケーションを保護する
  • ベストプラクティスに沿った RESTful API を構築する
  • Django のテスト(単体テストと統合テスト)を作成する
  • 本番環境にデプロイする

リソース

公式ドキュメント
学習プラットフォーム
ツール

次のステップ

Django を習得したら、以下を学びましょう。

  • FastAPI - モダンで高速な Web フレームワーク
  • Celery - 非同期タスクキュー
  • Docker - デプロイのためのコンテナ化
  • AWS/Heroku - クラウドデプロイプラットフォーム

コメント