ホームページ >バックエンド開発 >Python チュートリアル >同期アプリケーション
モノリシック アプリケーションは、システムのすべてのコンポーネント (ユーザー インターフェイス、ビジネス ロジック、データベースなど) が単一の統一された構造に統合されているソフトウェアの一種です。このアーキテクチャでは、すべてのコンポーネントが 1 つのアプリケーションの一部として実行されます。
統合構造:
すべてのコンポーネント (フロントエンド、バックエンド、データベース) は、単一の実行可能ファイルまたはプロセスに含まれています。
単純な開発と展開:
開発者は単一のコードベースを管理するため、開発と展開が簡単になります。
小規模プロジェクトの優れたパフォーマンス:
スピードとシンプルさが優先される小規模または中規模のプロジェクトに適しています。
コンポーネントの依存性が高い:
小さな変更でも、アプリケーション全体の再構築と再デプロイが必要になる場合があります。
よりシンプルな初期開発:
個別のサービスを実装する必要がないため、小規模プロジェクトの開始が容易になります。
管理が簡単:
アプリケーション全体に対して 1 つのコードベースと 1 つのデプロイメント。
小規模チームに最適:
サービスを分割する必要がないチームに適しています。
単純なリクエストに対する高パフォーマンス:
サービス間通信がないため、応答時間が短縮されます。
難しいスケーラビリティ:
大規模なプロジェクトの場合、システムの一部をスケーリングまたは変更するには、多くの場合、コードの重要な部分を書き直す必要があります。
変更のリスクが高い:
小さな変更がシステム全体の機能に影響を与える可能性があります。
大規模チーム向けの複雑な管理:
大規模な開発チームにとって、大規模なコードベースの管理は困難になります。
長い展開時間:
アプリケーションが大きくなるにつれて、コンパイルとデプロイの時間も増加します。
小規模から中規模のプロジェクト:
プロジェクトが小規模で、大規模なスケーラビリティを必要としない場合。
小規模開発チーム:
チームが小さく、タスクを分割すると不必要な複雑さが生じる場合。
期間限定:
プロジェクトを迅速に納品する必要がある場合。
Django はデフォルトでモノリシック アプリケーションを作成するように設計されており、ビジネス ロジック、プレゼンテーション層、データベース管理などのすべての部分が単一の構造に統合された包括的なアプリケーションを簡単に構築できます。
まず、アプリケーションの全体的な構造を設定する新しい Django プロジェクトを作成します。
django-admin startproject myproject cd myproject
モノリシック アーキテクチャでは、各アプリはプロジェクトの特定の部分を担当しますが、すべてのアプリは共有コードベース内に存在し、相互接続されています。
python manage.py startapp blog python manage.py startapp shop
新しく作成したアプリを settings.py ファイルに追加します。
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'blog', 'shop', ]
各アプリは、その機能に関連するモデルを定義します。これらのモデルはデータベースに直接接続します。
from django.db import models class Post(models.Model): title = models.CharField(max_length=200) content = models.TextField() created_at = models.DateTimeField(auto_now_add=True) def __str__(self): return self.title
from django.db import models class Product(models.Model): name = models.CharField(max_length=100) price = models.DecimalField(max_digits=10, decimal_places=2) description = models.TextField() def __str__(self): return self.name
モデルをデータベースに移行します:
python manage.py makemigrations python manage.py migrate
プロジェクトの urls.py ファイルでアプリのルートを定義します。
from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('blog/', include('blog.urls')), # Blog App URL path('shop/', include('shop.urls')), # Shop App URL ]
from django.urls import path from . import views urlpatterns = [ path('', views.index, name='blog_index'), ]
from django.urls import path from . import views urlpatterns = [ path('', views.index, name='shop_index'), ]
ビューはリクエストを処理し、レスポンスを送信します。
from django.shortcuts import render from .models import Post def index(request): posts = Post.objects.all() return render(request, 'blog/index.html', {'posts': posts})
from django.shortcuts import render from .models import Product def index(request): products = Product.objects.all() return render(request, 'shop/index.html', {'products': products})
アプリケーションでデータを表示するためのテンプレートを定義します。
<h1>Blog Posts</h1> <ul> {% for post in posts %} <li>{{ post.title }}</li> {% endfor %} </ul>
<h1>Shop Products</h1> <ul> {% for product in products %} <li>{{ product.name }} - ${{ product.price }}</li> {% endfor %} </ul>
Django サーバーを実行し、アプリケーションをテストします。
django-admin startproject myproject cd myproject
以上が同期アプリケーションの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。