嘿开发者!欢迎来到第一个 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 聊天应用程序的详细内容,更多请关注其它相关文章!
Article Links:https://www.hinyin.com/n/246629.html
Article Source:admin
Article Copyright:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。