單體應用程式是一種軟體,其中系統的所有元件(例如使用者介面、業務邏輯和資料庫)都整合到一個統一的結構中。在此架構中,所有元件都作為一個應用程式的一部分運作。
統一結構:
所有元件(前端、後端和資料庫)都包含在單一執行檔或進程中。
簡單的開發與部署:
開發人員管理單一程式碼庫,讓開發和部署變得簡單。
小型專案的良好表現:
適合優先考慮速度和簡單性的中小型項目。
高組件依賴性:
即使很小的變更也可能需要重建和重新部署整個應用程式。
更簡單的初始開發:
小型專案更容易啟動,因為無需實施單獨的服務。
更容易管理:
整個應用程式的一個程式碼庫和一個部署。
小型團隊的理想選擇:
適合不需要拆分服務的團隊。
簡單請求的高效能:
沒有服務間通訊意味著更快的回應時間。
難以擴充:
對於大型項目,擴充或修改系統的某些部分通常需要重寫大部分程式碼。
變更的高風險:
微小的變化可能會影響整個系統的功能。
大型團隊的複雜管理:
管理大型程式碼庫對於大型開發團隊來說變得具有挑戰性。
部署時間長:
隨著應用程式的成長,編譯和部署時間也會增加。
中小型項目:
當項目較小且不需要廣泛的可擴展性時。
小型開發團隊:
當團隊規模較小時,拆分任務會造成不必要的複雜性。
限時:
當專案需要快速交付時。
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中文網其他相關文章!