BBS项目(一)
BBS项目(一)

项目开发流程
项目分类
- 针对互联网用户:抖音,淘宝·····
- 针对公司内部:后台管理系统···
- 针对给用户定制软件:比如肯德基···
项目开发模式分类
- 瀑布开发模式:通俗理解为软件/项目全开发完了测试维护更新
- 敏捷开发:开发一个功能就去测试···,等开发完了直接上线,[DevOps](什么是 DevOps?DevOps 解释 | Microsoft Azure)比较常用
Devops简介
DevOps 是开发 (Dev) 和运营 (Ops) 的复合词,它将人、流程和技术结合起来,不断地为客户提供价值。
DevOps 对团队意味着什么?DevOps 使以前孤立的角色(开发、IT 运营、质量工程和安全)可以协调和协作,以生产更好、更可靠的产品。通过采用 DevOps 文化、做法和工具,团队能够更好地响应客户需求,增强对所构建应用程序的信心,更快地实现业务目标。
DevOps生命周期

DevOps 做法
持续集成和持续交付 (CI/CD):
配置管理是指管理系统中资源(包括服务器、虚拟机和数据库)的状态。使用配置管理工具,团队能够以一种可控和系统的方式进行更改,因此降低了修改系统配置的风险。团队使用配置管理工具来跟踪系统状态并帮助避免配置漂移,即避免系统资源的配置随时间偏离为其定义的目标状态。
通过与基础设施即代码结合使用,系统定义和配置都很容易进行模板化和自动化,帮助团队大规模地操作复杂的环境。
项目开发流程
- 立项
- 需求分析:产品经理/用户提出需求
- 设计原型图(类似流程图,产品经理设计)
- 美工切图
- 技术选型,数据库、架构设计
- 前后台开发(协同开发:git)
- 对接联调
- 运维上线(测试环境)
- 测试人员测试
- 修改Bug(开发)
- 上线运行
- 迭代更新
BBS项目
需求
- 注册功能(froms,ajax提交,上传头像)
- 登录功能(ajax提交,错误信息渲染)
- 首页展示(文章,作者头像,点赞数,广告位)
- 个人站点(左侧侧边栏过滤,inclusion_tag)
- 文章页面(文章展示,点赞,点踩···)
- 后台管理(展示个人所有文章,文章增删查改,防止xss攻击)
- 修改密码,头像··
BBS表分析
设计程序
- Django2.2、MySQL5.7
数据库设计(设计表)
用户表(auth扩写)
- 头像字段
- 博客id字段(和博客表一对一关系)
博客表(个人站点)
- 博客标题
- 博客名称
- 博客样式
文章表
- 文章标题
- 文章摘要
- 文章内容
- 文章创建时间
- 用户id字段(和用户一对多关系)
- 分类id字段(和文章分类表一对多关系)
- 标签id字段(和标签多对多关系:考虑第三张表的创建方式)
文章分类表
- 分类id
- 分类名称
- 分类描述
- 博客id(和博客表一对多关系)
标签表:和文章多对多
- 标签id
- 标签名称
- 博客id(和博客表一对多关系)
点赞点踩表
- is_up:点赞点踩字段
- 点赞点踩时间
- 用户id字段(一个用户可以点多个赞/踩,一对多关系)
- 文章id字段(和文章表一对多关系)
评论表
- 评论内容
- 用户id字段(和用户表一对多关系)
- 文章id字段(和文章表一对多关系)
注意:在确立表和表之间的关系的时候,依据是记录和记录的关系,并不是表和表的关系
自关联
比如我们的评论功能,你可以评论文章,但是可能其他用户觉得你的评论不太好想喷你,去评论你的评论,那么这里需要涉及到自关联
'''自关联'''
评论id 用户id 文章id 评论内容 评论id
1 1 1 写的真好 null
2 2 1 明明写的不好 1
3 1 1 别骂别骂 2
4 3 1 就是写的不好 1
比如你评论了写的真好,别人就回来评论你的评论,写的不好····这其实是一种一对多的关系,外键指向自己
表关系图示

以上是BBS项目分析的全部流程,接下来实战操作~
BBS项目(一)的更多相关文章
- BBS项目详解(forms快速创建登陆页面,登陆验证、通过阅读器进行头像上传的预览、内存管理器)
BBS项目涉及的知识点 django中知识点 钩子函数(局部钩子和全局钩子) 1.局部钩子就是用来做合法性校验,比如用户名有没有被使用等 2.全局的就是用来做对比校验,比如两次输入的密码是否一致 3. ...
- BBS项目部署
1.准备 项目架构为:LNM+Python+Django+uwsgi+Redis (L:linux,N:nginx,M:mysql) 将bbs项目压缩上传到: /opt 在shell中直接拖拽 ...
- auth复习和BBS项目的登录(1)
auth复习 auth组件 验证:authenticate(request,username='andy',password='123) 登录:login(request,user) 注销:login ...
- python 自动化之路 day 20 Django进阶/BBS项目【一】
一.django进阶 1.django orm 增删改查 1.1.创建表: 1 2 3 >>> from blog.models import Blog >>> b ...
- BBS项目知识点汇总
目录 bbs项目知识点汇总 一. JavaScript 1 替换头像 2 form表单拿数据 3 form组件error信息渲染 4 添加html代码 5 聚焦操作 二 . html在线编辑器 三 . ...
- BBS项目-01
目录 BBS项目 BBS开发流程: BBS表格创建: BBS项目 BBS开发流程: BBS项目: 开发流程: 需求分析 草拟一些项目的大致技术点和流程 架构设计 架构师(框架 语言 数据库 缓存数据库 ...
- 小福bbs—项目系统设计与数据库设计
这个作业属于哪个课程 班级链接 这个作业要求在哪里 作业要求的链接 团队名称 小福bbs 这个作业的目标 实现对校园论坛软件的制作,使其能够发布帖子,查看信息等 作业的正文 小福bbs--项目需求分析 ...
- 小福bbs——项目需求分析
# 一.简单了解 这个作业属于哪个课程 班级链接 这个作业要求在哪里 作业要求的链接 团队名称 小福bbs 这个作业的目标 第一个版本,根据项目预期情况形成 作业的正文 小福bbs--项目需求分析 其 ...
- day75 bbs项目☞后台管理+修改头像
目录 一.后台管理之添加文章 二.修改用户头像 bbs项目总结 一.后台管理之添加文章 添加文章有两个需要注意的问题: 文章的简介切取,应该想办法获取到当前文章的文本内容后再截取字符 XSS攻击,由于 ...
- nginx之location、inmp架构详解、BBS项目部署
本期内容概要 location lnmp架构 部署BBS项目 内容详细 1.location 使用Nginx Location可以控制访问网站的路径 但一个server可以有多个location配置 ...
随机推荐
- Java IO: ByteArrayOutputStream使用
感谢原文作者:小思思smile 原文链接:https://blog.csdn.net/u014049880/article/details/52329333/ 更多请查阅Java API文档! 在创建 ...
- 线程池与Callable接口
定义: 一个容纳多个线程的容器,其中的线程可以反复使用,省去了频繁创建线程对象的操作,无需反复创建线程而消耗过多资源. 使用方法 public void lockDemo() throws Inter ...
- Python中处理日期时间库的使用方法
常用的库有time.datetime.其中datetime库是对time库的封装,所以使用起来更加便捷.date是指日期时间(年月日)处理,time往往更加细小的单位(小时分秒等)的时间处理. 一.d ...
- LaunchScreen&LaunchImage
优先级:LaunchScreen > LaunchImage 在xcode配置了,不起作用 1.清空xcode缓存 2.直接删掉程序 重新运行 如果是通过LaunchImage设置启动界面,那么 ...
- 日期类 Date
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; impor ...
- action标签中method={1}怎么理解
其实用到method={数字}的时候,相应的前面的action是要出现*通配符来搭配的.比如一个小例子:<action name="user_*" class="U ...
- Docker之LNMP分布式容器部署
Docker之LNMP分布式容器部署 目录 Docker之LNMP分布式容器部署 一.项目模拟 1. 项目环境 2. 服务器环境 3. 任务需求 二.Linux系统基础镜像 三.Nginx 1. 建立 ...
- Feign实现文件上传下载
Feign框架对于文件上传消息体格式并没有做原生支持,需要集成模块feign-form来实现. 独立使用Feign 添加模块依赖: <!-- Feign框架核心 --> <depen ...
- c++ 动态内存 动态数组
动态内存-动态数组 习题12.23 //连接字符串到动态数组 char *c = new char[20](); char a[] = "hello "; char b[] = & ...
- nginx域名转发
场景1:因服务器限制,所以只对外开放了一个端口,但是需要请求不同的外网环境,所以在中转服务器上用nginx做了一次转发 实现: server { listen 8051; server_name lo ...