BBS项目搭建
2097 字
10 分钟
BBS项目搭建
【一】创建Django项目
- 本次项目命名为BulletinBoardSystem
- File ---> New Project --->Django--->定义配置项 ---> CREATE

【二】创建APP
【1】创建APP
- 本次项目拆分成用户,站点和文章三部分
# 创建用户APPpython manage.py startapp user
# 创建站点APPpython manage.py startapp blog
# 创建文章APPpython manage.py startapp article
# 创建管理后台APPpython manage.py startapp backend【2】路由分发
- 分别在三个app下新建urls.py并增加下述内容
from django.urls import path
urlpatterns = []- 在跟路由下进行路由分发
- BulletinBoardSystem/urls.py
from django.contrib import adminfrom django.urls import pathfrom django.urls.conf import include
# 根路由urlpatterns = [ path('admin/', admin.site.urls),]
# 路由分发至User App下user_urlpatterns = [ path("user/", include("user.urls")),]# 路由分发至Blog App下blog_urlpatterns = [ path("blog/", include("blog.urls")),]# 路由分发至Article App下article_urlpatterns = [ path("article/", include("article.urls")),]
# 路由分发至Backend App下backend_urlpatterns = [ path("backend/", include("backend.urls")),]
# 路由扩展urlpatterns += user_urlpatternsurlpatterns += blog_urlpatternsurlpatterns += article_urlpatternsurlpatterns += backend_urlpatterns【三】配置文件配置
【0】配置Django版本
- 如果是安装虚拟环境,则默认安装最新版本Django
- 但是我们的项目使用的是Django3.2.12版本
# 安装指定版本的Django# 如果已经安装的是最新版本的Django,则默认会卸载最新版本的Django# 安装指定版本的Djangopip install django==3.2.12【1】注册APP
# 注册APPINSTALLED_APPS = [ # Django的内置后台管理界面 'django.contrib.admin', # Django的认证系统,提供了用户账号、组群、权限等管理功能。 'django.contrib.auth', # Django的内容类型框架,为Django应用中的模型提供了一种通用的、与具体模型无关的表示方式。 'django.contrib.contenttypes', # Django的会话管理框架,为Django应用提供用户会话(Session)支持。 'django.contrib.sessions', # Django的消息框架,用于在用户会话期间跨请求传递临时信息(如成功提示、错误警告、信息通知等)。 'django.contrib.messages', # Django的静态文件管理框架,帮助收集、处理和发布项目的静态文件(如CSS、JavaScript、图片等)。 'django.contrib.staticfiles', # 文章 article 模块 "article.apps.ArticleConfig", # 用户 user 模块 "user.apps.UserConfig", # 后台 backend 模块 "backend.apps.BackendConfig", # 博客 blog 模块 "blog.apps.BlogConfig"] 这是Django的内置后台管理界面,简称Admin Site。 它提供了一个开箱即用、基于Web的界面,允许管理员对项目中的模型(models)进行便捷的增删改查操作。 通过注册模型到Admin Site,开发者可以快速生成针对特定数据模型的管理界面,无需从零开始编写复杂的管理页面代码。 Admin Site还支持自定义列表展示字段、搜索过滤条件、分页、批量操作等功能,极大提高了内容管理效率。
# 2.django.contrib.auth Django的认证系统,提供了用户账号、组群、权限等管理功能。 主要内容包括: - 用户模型(User)和相关数据模型:如用户密码哈希存储、用户权限、用户组等。 - 登录/登出功能:包括登录视图、登出视图、密码重置等。 - 认证中间件(Middleware):处理会话认证、匿名用户、权限检查等。 - 视图装饰器:如`@login_required`,用于保护需要用户登录才能访问的视图。 - 权限管理:基于用户、组或模型级别的权限控制,以及自定义权限实现。
# 3.django.contrib.contenttypes 内容类型框架,为Django应用中的模型提供了一种通用的、与具体模型无关的表示方式。 主要内容包括: - `ContentType`模型:记录所有已安装应用中模型的信息(如模型名、应用名、模型类等),使得其他组件(如admin、sessions、messages等)可以以统一的方式处理不同类型的模型对象。 - 允许与其他组件(如信号、权限系统等)配合,实现与模型无关的功能,如通用的关联对象管理、动态权限分配等。
# 4.django.contrib.sessions 会话管理框架,为Django应用提供用户会话(Session)支持。 主要内容包括: - 会话存储:支持多种后端(如数据库、缓存、文件系统等)来存储用户会话数据,确保跨请求保持用户状态。 - 会话中间件:自动处理请求中的会话cookie,读取、更新或删除会话数据。 - 会话API:提供创建、修改、删除会话,以及操作会话中键值对的方法,方便在视图和模板中使用。
# 5.django.contrib.messages 消息框架,用于在用户会话期间跨请求传递临时信息(如成功提示、错误警告、信息通知等)。 主要内容包括: - 消息存储:类似会话,支持多种后端存储消息数据。 - 消息中间件:处理请求中的消息,自动保存待显示的消息,并在下一个请求中渲染显示。 - 消息API:提供添加、清除消息的方法,以及在视图和模板中显示消息的标签和过滤器。
# 6.django.contrib.staticfiles 静态文件管理框架,帮助收集、处理和发布项目的静态文件(如CSS、JavaScript、图片等)。 主要内容包括: - 静态文件发现:在多个源目录(如各应用的`static`目录和项目级`static`目录)中查找静态文件。 - 集成开发服务器:在开发模式下,自动为静态文件提供服务。 - 静态文件收集命令:在部署时,使用`collectstatic`命令将分散的静态文件复制到指定的静态文件目录,便于Web服务器统一托管和高效服务。 - URL配置:提供`static()`函数用于在URLconf中设置静态文件的URL前缀。【2】配置数据库
(1)数据库选择
- 本次项目使用的MySQL数据库
- 因此需要创建新的数据库
# 进入MySQL数据库mysql -uroot -p# 执行创建数据库命令create database bbs_sys;(2)配置Django
DATABASES = { 'default': { # 数据库引擎选择使用MySQL 'ENGINE': 'django.db.backends.mysql', # 指定数据库名字,需提前创建 'NAME': 'bbs_sys', # 指定数据库用户名 'USER': 'root', # 指定数据库用户密码 'PASSWORD': '1314521', # 指定数据库连接IP 'HOST': '127.0.0.1', # 指定数据库端口 'PORT': 3306, # 指定数据库默认编码集(可选) 'CHARSET': 'utf8mb4', }}(3)Django启动MySQL解决方案
# 解决方案一:安装mysqlclientpip install mysqlclient# 解决方案二:猴子补丁# 步骤一:安装 pymysql 模块pip install pymysql
# 步骤二:在任意位置的 __init__.py 文件中增加下述代码import pymysql
pymysql.install_as_MySQLdb()【四】修改时区
- 默认时区为国际时区,切换为亚洲上海
- 默认Django显示的语言为英文,切换为中文
# 指定应用的默认语言。# 其值设为 'zh-hans',表示中文简体。# 这会影响应用程序中所有与文本相关的输出内容,如界面文字、错误消息、模板渲染等。# 用户在访问应用时,除非另有个性化设置,否则将看到以中文简体呈现的各种信息。LANGUAGE_CODE = 'zh-hans'
# 设定应用所使用的本地时间。# 这里设为 'Asia/Shanghai',即中国上海所在的时区。# 这意味着应用在处理日期和时间相关操作时,会以东八区时间(北京时间)作为基准。TIME_ZONE = 'Asia/Shanghai'
# USE_I18N 是一个布尔值参数# 当设为 True 时,启用应用的国际化支持(Internationalization,简称 i18n)。USE_I18N = True
# USE_TZ 参数控制是否启用应用的时间区域支持(Time Zone support)。# 当设为 False 时,表明应用不考虑时间区域差异,所有时间操作均基于系统本地时间(通常是服务器操作系统设置的时间)进行。USE_TZ = False【五】配置静态文件
- 因为需要借助Django的静态文件渲染语法
- 所以需要配置Django的静态文件配置
STATIC_URL = 'static/'# 新增 static 配置STATICFILES_DIRS = [ # 默认使用根目录下的静态文件进行渲染 # 不要忘记手动导入 os 模块 import os os.path.join(BASE_DIR, 'static')]【六】配置媒体静态文件
- 称为媒体文件夹,是变动的,由用户定义的文件
- 如 用户头像, 用户上传的图片或视频等;
- 可为富文本编辑器mdeditor提供支持
# 配置 media 资源文件接口MEDIA_URL = '/media/'# 添加媒体文件夹 media 文件夹位置# 不要忘记手动导入 os 模块 import osMEDIA_ROOT = os.path.join(BASE_DIR, "media")支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!
相关文章智能推荐
1
C 语言发展史
编程语言了解 C 语言从 BCPL、B 语言到现代标准 C 的发展历程、核心特点与应用领域。
2
C 语言开发环境的安装与配置
编程语言在 Windows、Linux 与 macOS 上安装 C 工具链,配置编辑器,并编译运行第一个 C 程序。
3
C 语言初识:程序运行机制与基本结构
编程语言认识 C 程序从源代码到运行的完整流程,以及基础语法和程序的基本结构。
4
C 语言基础:注释、关键字、变量与数据类型
编程语言学习 C 语言的注释、关键字、标识符、常量、变量和基本数据类型等基础知识。
5
C 语言数据类型
编程语言理解 C 语言的数据类型体系,包括基本类型、整数类型、浮点类型和逻辑类型。
随机文章随机推荐














