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
897 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!

source:dev.to
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