数据库课程设计 论坛系统 | 您所在的位置:网站首页 › 系统的说明书 › 数据库课程设计 论坛系统 |
马马虎虎记录下2021Fall 的数据库课程设计——论坛系统 基于django开发,源码上传到github啦:) 🔗 B612Forum 不能翻墙的戳这里:) csdn资源下载 文章目录 1. 文档介绍1.1. 编写目的1.2. 文档范围1.3. 读者对象 2. 数据库概念结构设计2.1 系统 ER 图2.2 系统用例图2.3 业务泳道图2.4 数据流图2.5 模式类图 3. 服务功能和界面设计3.1 整体设计方法概述3.2 后端服务功能设计3.3.前端界面设计3.3.1 主界面设计3.3.2 注册界面3.3.3 登录界面3.3.4 详细界面3.3.4 发帖界面3.3.5 内容管理界面3.3.6 消息提示界面3.3.7 好友申请界面3.3.8 个人资料界面3.3.9 编辑资料界面3.3.10 修改密码界面3.3.11 后台管理界面 4. 系统安全体系设计5. 系统运行环境设计与部署结构5.1 环境设计5.2 项目部署 6. 源代码列表及说明 1. 文档介绍 1.1. 编写目的 对系统进行整体的设计,方便后续的开发过程作为数据库设计,软件架构的总依据 1.2. 文档范围包括数据库设计,软件设计等有关内容 1.3. 读者对象编写系统设计规格说明的人员及程序开发人员,以及《数据库系统原理》课程老师和同学。 2. 数据库概念结构设计 2.1 系统 ER 图场景 1: 用户登录,注册,修改个人信息,注销
⚫ 设计模式: MVC 本论坛系统是基于 MVC 的设计模式的。 MVC 即 Model-View-Controller(模型-视图-控制器) 模式。 ◼ Model (模型) 简而言之即数据模型。模型不是数据本身(比如数据库里的数据),而是抽象的描 述数据的构成和逻辑关系。通常模型包括了数据表的各个字段(比如人的年龄和出生日期)和相 互关系(单对单,单对多关系等)。数据库里的表会根据模型的定义来生成创建。 ◼ View (视图) 主要用于显示数据,用来展示用户可以看到的内容或提供用户可以输入或操作的界 面。 ◼ Controller(控制器)是应用程序中处理用户交互的部分。通常控制器负责从视图读取数据,控制 用户输入,并向模型发送数据(比如增加或更新数据表)。 Django 网站开发的四大模块,Django Model(模型)对应的是 MVC 模式中的模型;Django URL + View(视图) 对应 MVC 模式中的 Controller;Django Template(模板): 这个与经典 MVC 模式下的 View 一致。Django 模板 用来呈现 Django view 传来的数据,也决定了用户界面的外观。Template 里面也包含了表单,可以用来搜 集用户的输入 ⚫ 开发框架:ORM 该论坛系统在开发的过程中采用的是 ORM 框架,即 Object-Relational Mapping(对象关系映射),它 的作用是在关系型数据库和业务实体对象之间作一个映射,关系表现为 Django 中的一个数据模型(Model) 映射一个数据库表。其基本情况是:类(django.db.models.Model)映射到数据库表,类的属性映射为数据 库表字段,类的实例对象则映射为数据行。 不同程序员写 SQL 语句的水平参差不齐,写出的 SQL 语句执行效率不一致,导致系统运行速度快慢不一,运行状态时好时坏。Django ORM 通过统一格式的业务逻辑代码操作数据库,把 SQL 语句统一转换成 较为固定的 Django 语法结构。Django ORM 能避免一些重复、简单的劳动,在 ORM 模式下开发人员不用写 SQL 语句,更不需要在 SQL 语句优化上下功夫,可以只专注于业务逻辑的处理,从而提高开发效率。 设计流程主要包括如下 5 步 在项目使用的数据库管理系统中建立数据库。在项目的配置文件 settings.py 中设置数据库的连接字符。在应用程序的 models.py 文件中编写继承于 models.Model 的数据模型。运行 python manage.pymakemigrations、python manage.py migrate 两个命令生成数据库表。使用 Django ORM 操作数据库表。⚫ AJAX 编程方法 AJAX(Asynchronous Java Script And XML)的意思是异步的 Java Script 和 XML,也就是使用 Java Script 语言与服务器进行异步交互,传输的数据为 XML,实际上现在传输的数据大多是 JSON 格式的。AJAX 最大 的优点是在不重新加载整个页面的情况下,可以与后端服务器交换数据并更新部分网页内容。在本论坛系 统中采用 AJAX 编程实现嵌套评论,并在网页上实时显示 ⚫ Bootstrap 前端框架 本论坛系统采用的是 bootstrap 的前端框架,使得 web 开发更迅速、简单。通过使用 bootstrap 提供的 css 设置,组件,javascript 插件来美化网页。 3.2 后端服务功能设计
为了保证系统平稳运行,设计了系统的安全体系,一个目的在于处理系统故障,介质故障,以及计算机病 毒。另一个目的在于限制数据库用户的权限,避免用户无意或恶意造成数据的泄露或损坏。 ⚫ 对于系统故障和介质故障,应当开启数据库的日志功能,定期对数据库全库备份;对于计算机病毒, 应当为系统安装杀毒软件,并且运维时进了避免使用操作系统的管理员账户登陆系统,减小病毒可能 造成的危害。 ➢ 手动数据库备份:直接在宝塔面板中的数据库管理界面点击进行备份,或者手动复制云服务器项 目目录下的 db.sqlite3 文件。
一、 下载 python3 到/usr/local 目录 1.1. 切换到 /usr/local 目录 1.2. 获取 python3.6 的压缩文件 wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz 1.3 解压 python3.6 tar -zxvf Python-3.6.6.tgz 1.4 编译安装 python3 到指定路径 1.4.1 执行命令 ./configure --prefix=/usr/local/python3 1.4.2 安装 python3 make make install 1.4.3 安装完成之后,建立软链接,添加变量,方便在终端中直接使用 python3 a)python3 的软连接 执行命令: ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3 b)pip3 的软连接 执行命令: ln -s /usr/local/python3/bin/pip3.6 /usr/bin/pip3 二、 安装软件管理包和可能使用的依赖 2.1. 执行命令: yum -y groupinstall "Development tools" 2.2. 执行命令: yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel 三、 安装 virtualenv 3.1.执行命令: pip3 install virtualenv 3.2.建立软连接 执行命令: ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv 3.3.在根目录下建立文件夹,用于存放 env mkdir -p /data/env 四、 切换到/data/env/下,创建指定版本的虚拟环境 4.1.执行命令 : cd /data/env 切换目录 4.2.执行命令: virtualenv --python=/usr/bin/python3 pyweb 4.3.进入/data/env/pyweb/bin,启动虚拟环境 A.执行命令: cd /data/env/pyweb/bin B.执行命令: ``source activate 五、虚拟环境中配置网站所需依赖 5.1 在你网站根目录执行下列命令导出配置信息: pip freeze > requirements.txt 5.2 安装 uwsgi 执行命令: pip3 install uwsgi 5.3 给 uwsgi 建立软链接 执行命令: ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi 5.4 将网站源码上传 5.4.1 修改 setting.py 文件 ALLOWED_HOSTS = ['*'] # 设置为所有的主机都可以访问 STATIC_ROOT = os.path.join(BASE_DIR,"static") # 设置静态文件的路径 5.4.2 在主目录下生成 static 和 media 文件 python manage.py collectstatic 5.4.2 通过宝塔面板上传到云服务器上 /www/wwwroot 目录下 3.然后在任意主机上的浏览器中键入”公网 IP:端口号” 就可以浏览该网页 |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |