前のブログでは、開発環境をセットアップし、基本的な Django プロジェクトとアプリを作成しました。ここで、プロジェクト構造、Model-View-Template (MVT) アーキテクチャ、Django 管理インターフェイスなど、Django の基本的な側面をさらに深く掘り下げてみましょう。この投稿を終えるまでに、これらの概念をしっかりと理解し、簡単なブログ アプリケーションを作成する準備ができているはずです。
このブログでは、プロジェクト構造、MVT アーキテクチャ、Django 管理インターフェイスなど、Django の基本的な側面を詳しく掘り下げます。
Django のプロジェクト構造を理解することは、コードを効果的に操作して整理するために重要です。新しい Django プロジェクトとアプリを作成すると、次のディレクトリ構造が生成されます:
myproject/ manage.py myproject/ __init__.py settings.py urls.py wsgi.py asgi.py blog/ __init__.py admin.py apps.py models.py tests.py views.py migrations/
Django は、MVC パターンのバリエーションであるモデル-ビュー-テンプレート (MVT) アーキテクチャに従っています。このアーキテクチャは、懸念事項の明確な分離を促進し、コードをより組織化して保守しやすくします。
モデルはデータベース テーブルの構造を定義します。各モデルは、django.db.models.Model.
をサブクラス化する Python クラスです。
# blog/models.py from django.db import models class Post(models.Model): title = models.CharField(max_length=100) content = models.TextField() published_date = models.DateTimeField(auto_now_add=True) def __str__(self): return self.title
ビューは、アプリケーションのロジックとデータ処理を処理します。これらはリクエストを受け取り、モデルと対話し、レスポンスを返します。
# blog/views.py from django.shortcuts import render from .models import Post def home(request): posts = Post.objects.all() return render(request, 'blog/home.html', {'posts': posts})
テンプレートは、Web ページの HTML 構造とプレゼンテーションを定義します。 Django テンプレート タグとフィルターを使用して、動的コンテンツを含めることができます。
Blog Home Blog Posts
{% for post in posts %}{{ post.title }}
{{ post.content }}
Published on: {{ post.published_date }}
{% endfor %}
URL をビューにマップするには、URL パターンを urls.py で構成する必要があります。
# myproject/urls.py from django.contrib import admin from django.urls import path from blog import views urlpatterns = [ path('admin/', admin.site.urls), path('', views.home, name='home'), ]
Django 管理インターフェイスは、追加のコードを記述せずにアプリケーションのデータを管理できる強力なツールです。モデルに合わせてユーザーフレンドリーなインターフェイスを自動的に生成します。
# blog/admin.py from django.contrib import admin from .models import Post admin.site.register(Post)
python manage.py createsuperuser
これは、Django でアプリケーションを作成するプロセスの概要です。シリーズの次のパートにご期待ください。ここでは、学んだことを応用して簡単なブログ アプリケーションを作成します。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3