海印网
海印网

CollabSphere 部分设置模块化 Django 聊天应用程序

admin数码00

CollabSphere 部分设置模块化 Django 聊天应用程序-第1张图片-海印网

嘿开发者!欢迎来到第一个 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
.venvscriptsctivate
# 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'))

登录后复制

为我们的依赖项需求创建requirements.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 聊天应用程序的详细内容,更多请关注其它相关文章!

Tags: 应用程序项目

Sorry, comments are temporarily closed!