Les applications monolithiques sont un type de logiciel dans lequel tous les composants du système (par exemple, l'interface utilisateur, la logique métier et la base de données) sont intégrés dans une structure unique et unifiée. Dans cette architecture, tous les composants s'exécutent dans le cadre d'une seule application.
Structure unifiée :
Tous les composants (frontend, backend et base de données) sont contenus dans un seul exécutable ou processus.
Développement et déploiement simples :
Les développeurs gèrent une base de code unique, ce qui simplifie le développement et le déploiement.
Bonnes performances pour les projets à petite échelle :
Convient aux projets de petite ou moyenne taille où la rapidité et la simplicité sont des priorités.
Dépendance élevée des composants :
Même de petits changements peuvent nécessiter la reconstruction et le redéploiement de l'intégralité de l'application.
Développement initial plus simple :
Plus facile à démarrer pour les petits projets car il n'est pas nécessaire de mettre en œuvre des services séparés.
Plus facile à gérer :
Une base de code et un déploiement pour l'ensemble de l'application.
Idéal pour les petites équipes :
Convient aux équipes qui ne nécessitent pas de services de fractionnement.
Hautes performances pour des requêtes simples :
Aucune communication interservices signifie des temps de réponse plus rapides.
Évolutivité difficile :
Pour les grands projets, la mise à l'échelle ou la modification de parties du système nécessite souvent de réécrire des parties importantes du code.
Risque élevé de changements :
De petits changements peuvent avoir un impact sur la fonctionnalité de l'ensemble du système.
Gestion complexe pour grandes équipes :
Gérer une grande base de code devient un défi pour les grandes équipes de développement.
Longs délais de déploiement :
À mesure que l'application se développe, les temps de compilation et de déploiement augmentent.
Projets petits à moyens :
Lorsque le projet est petit et ne nécessite pas une évolutivité étendue.
Petites équipes de développement :
Lorsque l'équipe est petite et que diviser les tâches créerait une complexité inutile.
Durée limitée :
Quand le projet doit être livré rapidement.
Django est conçu par défaut pour créer des applications monolithiques, ce qui facilite la création d'une application complète où toutes les parties, telles que la logique métier, la couche de présentation et la gestion de base de données, sont intégrées dans une structure unique.
Tout d'abord, créez un nouveau projet Django, qui met en place la structure globale de votre application.
django-admin startproject myproject cd myproject
Dans une architecture monolithique, chaque application est responsable d'une partie spécifique du projet, mais toutes les applications résident dans une base de code partagée et sont interconnectées.
python manage.py startapp blog python manage.py startapp shop
Ajoutez les applications nouvellement créées au fichier settings.py.
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'blog', 'shop', ]
Chaque application définit des modèles liés à ses fonctionnalités. Ces modèles se connectent directement à la base de données.
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
Migrer les modèles vers la base de données :
python manage.py makemigrations python manage.py migrate
Définissez les itinéraires de vos applications dans le fichier urls.py du projet.
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'), ]
Les vues gèrent les demandes et envoient des réponses.
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})
Définissez des modèles pour afficher les données dans vos applications.
<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>
Exécutez le serveur Django et testez votre application :
django-admin startproject myproject cd myproject
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!