> 백엔드 개발 > 파이썬 튜토리얼 > CollabSphere 부분 모듈식 Django 채팅 애플리케이션 설정

CollabSphere 부분 모듈식 Django 채팅 애플리케이션 설정

Barbara Streisand
풀어 주다: 2024-11-29 01:33:12
원래의
896명이 탐색했습니다.

CollabSphere Part Setting Up a Modular Django Chat Application

안녕하세요 개발자 여러분! 첫 번째 CollabSphere 시리즈에 오신 것을 환영합니다. 이 게시물에서는 모듈식 아키텍처로 CollabSphere를 설정하여 애플리케이션을 사용자, 룸, 채팅이라는 고유한 구성 요소로 분리합니다.

들어가자!

프로젝트 구조 및 초기 설정

가상환경 설정

# 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
로그인 후 복사

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


로그인 후 복사

프로젝트 구성

# 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'))

로그인 후 복사

종속성 요구사항에 대한 요구사항.txt 생성

# 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
로그인 후 복사

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
로그인 후 복사

프로젝트 조직

최종 프로젝트 구조는 다음과 같습니다.

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
로그인 후 복사

이 구조의 주요 이점

  • 관심사항 분리: 각 앱이 특정 기능을 처리합니다
  • 유지관리성: 코드 유지관리 및 디버깅이 더 쉬워졌습니다
  • 확장성: 새로운 기능을 쉽게 추가하거나 기존 기능을 수정할 수 있습니다
  • 재사용성: 앱을 다른 프로젝트에서 재사용할 수 있습니다
  • 테스트: 테스트 작성 및 구성이 더 쉬워졌습니다

다음 단계

다음 게시물에서는 다음 내용을 다룰 예정입니다.

  • 사용자 모델(Django의 AbstractUser 확장)
  • 맞춤 사용자 등록
  • 로그인/로그아웃 조회수
  • 사용자 프로필

자원

Django 문서

collabsphere github 링크

오늘은 여기까지입니다. 다음 시리즈에서 뵙겠습니다!

위 내용은 CollabSphere 부분 모듈식 Django 채팅 애플리케이션 설정의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿