Maison > développement back-end > Tutoriel Python > CollabSphere Part Configuration d'une application de chat Django modulaire

CollabSphere Part Configuration d'une application de chat Django modulaire

Barbara Streisand
Libérer: 2024-11-29 01:33:12
original
979 Les gens l'ont consulté

CollabSphere Part Setting Up a Modular Django Chat Application

Salut les développeurs ! Bienvenue dans la première série CollabSphere. Dans cet article, nous allons mettre en place CollabSphere avec une architecture modulaire, séparant notre application en composants distincts : utilisateurs, salles et chat.

Plongeons-nous !

Structure du projet et configuration initiale

Configuration de l'environnement virtuel

# create a folder named `CollabSphere`
mkdir CollaSphere 
cd CollaSphere

# Create a new virtual environment
python -m venv .venv

# Activate the virtual environment
# For Windows
.venv\Scripts\activate
# For macOS/Linux
source .venv/bin/activate

# Install required packages
pip install django djangorestframework channels
pip install python-dotenv  # for environment variables
Copier après la connexion

Création d'un projet Django

# Create a new Django project
django-admin startproject collabsphere .
mkdir apps
cd apps

# Create our main chat, users, and room application
python manage.py startapp chat
python manage.py startapp users
python manage.py startapp rooms


Copier après la connexion

Configuration du projet

# collabSphere/settings.py

import os
from pathlib import Path

BASE_DIR = Path(__file__).resolve().parent.parent

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

    # Third-party apps
    'rest_framework',
    'channels',

    # Local apps
    'apps.users.apps.UsersConfig',
    'apps.rooms.apps.RoomsConfig',
    'apps.chat.apps.ChatConfig',
]

# Custom user model
AUTH_USER_MODEL = 'users.User'

# Update app directories
import sys
sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))

Copier après la connexion

Création d'exigences.txt pour nos exigences de dépendances

# command
pip freeze > requirements.txt


asgiref==3.8.1
Django==5.1.3
djangorestframework==3.15.2
python-decouple==3.8
sqlparse==0.5.2
typing_extensions==4.12.2
pillow == 11.0.0
channels
Copier après la connexion

Configuration des URL

# collabSphere/urls.py
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('apps.users.urls')),
    path('rooms/', include('apps.rooms.urls')),
    path('chat/', include('apps.chat.urls')),
]


This will be our path to our applications
Copier après la connexion

Organisation du projet

Voici la structure finale de notre projet :

CollabSphere/
├── apps/
│   ├── users/
│   │   ├── migrations/
│   │   ├── __init__.py
│   │   ├── admin.py
│   │   ├── apps.py
│   │   ├── forms.py
│   │   ├── models.py
│   │   ├── urls.py
│   │   └── views.py
│   ├── rooms/
│   │   ├── migrations/
│   │   ├── __init__.py
│   │   ├── admin.py
│   │   ├── apps.py
│   │   ├── models.py
│   │   ├── urls.py
│   │   └── views.py
│   └── chat/
│       ├── migrations/
│       ├── __init__.py
│       ├── admin.py
│       ├── apps.py
│       ├── consumers.py
│       ├── models.py
│       ├── urls.py
│       └── views.py
├── collabSphere/
│   ├── __init__.py
│   ├── asgi.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── static/
├── docs/
├── tests/
├── manage.py
└── requirements.txt
Copier après la connexion

Principaux avantages de cette structure

  • Séparation des préoccupations : chaque application gère ses fonctionnalités spécifiques
  • Maintenabilité : plus facile à maintenir et à déboguer le code
  • Évolutivité : peut facilement ajouter de nouvelles fonctionnalités ou modifier celles existantes
  • Réutilisabilité : les applications peuvent être réutilisées dans d'autres projets
  • Tests : plus facile à rédiger et à organiser des tests

Prochaines étapes

Dans le prochain article, nous aborderons :

  • Modèle utilisateur (extension de AbstractUser de Django)
  • Enregistrement d'utilisateur personnalisé
  • Vues de connexion/déconnexion
  • Profils utilisateurs

Ressources

Documentation Django

lien github de la collabsphère

C'est tout pour aujourd'hui. Nous vous reverrons dans notre prochaine série !

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal