项目开发流程

项目立项(高层,市场人员:市场调研,与客户对接)
项目设计(产品经理:设计软件功能,设计原型)
项目的具体设计(UI:切图)
分任务开发
前端:pc,小程序,移动端
分任务开发
后端:架构,数据库设计(设计表,表关联)
多人系统开发
联调
测试
功能测试,自动化测试,接口测试、、、
上线运行:运维
维护阶段:项目维护阶段
版本迭代

bbs项目表设计及关联

要开发的功能

注册功能
登录功能
首页:文章展示、导航栏、用户中心、广告位
个人主页:文章展示、侧边栏过滤(分类、标签、时间)
文章详情:点赞点踩、评论(父级、子级)
后台管理:个人文章展示(增加、删除、修改文章)
发布文章:富文本编辑器,xss攻击

技术选型

python3.8、django2.2.2、mysql:5.7、jquery2.X、bootstrap@3

设计数据库

用户表(基于auth的user表扩写,扩写字段)
博客表(跟用户表一对一)
标签表
分类表
文章表
点赞点踩表
评论表

各表之间的联系

创建项目

更改配置

"""配置文件"""
templates配置更改:'DIRS': [os.path.join(BASE_DIR , 'templates')]
国际化:
LANGUAGE_CODE = 'zh-hans' # 语言中文
TIME_ZONE = 'Asia/Shanghai' # 时区使用上海时区
USE_I18N = True
USE_L10N = True
USE_TZ = False
mysql配置:首先在数据库中创建一个数据库,可以在Navicat,也可以在终端敲命令进行创建
(命令形式:create database bbs;),创建好以后配置settings里的配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 指定数据库软件名称
'NAME': 'bbs', # 指定数据库名
'USER': 'root', # 用户名
'PASSWORD': '123456', # 密码
'HOST': '127.0.0.1',
'PORT': 3306, # 端口
'CHARSET': 'utf8' # 编码
}
}

创建表,思考表与表之间的关系

如果继承AbstractUser,扩展字段时,需要以下操作:
首先需要导入模块:from django.contrib.auth.models import AbstractUser
在settings.py文件中配置:AUTH_USER_MODEL = 'blog.UserInfo' FileField(upload_to='avatar', default='avatar/default.png')
保存文件的字段,upload_to参数的设置是指:可以把文件自动保存(avatar文件夹下),default参数指:存文件地址 verbose_name='XXX',提示这个字段是用来表示什么的 auto_now_add、auto_now
创建django的model时,有DateTimeField、DateField和TimeField三种类型可以用来创建日期字段,其值分别对应着datetime()、date()、time()三中对象。
auto_now = True # 这个参数的默认值为false,设置为true时,能够在保存该字段时,将其值设置为当前时间,并且每次修改model,都会自动更新。因此这个参数在需要存储“最后修改时间”的场景下,十分方便。需要注意的是,设置该参数为true时,并不简单地意味着字段的默认值为当前时间,而是指字段会被“强制”更新到当前时间,你无法程序中手动为字段赋值;如果使用django再带的admin管理器,那么该字段在admin中是只读的
auto_now_add = True # 这个参数的默认值也为False,设置为True时,会在model对象第一次被创建时,将字段的值设置为创建时的时间,以后修改对象时,字段的值不会再更新。该属性通常被用在存储“创建时间”的场景下。与auto_now类似,auto_now_add也具有强制性,一旦被设置为True,就无法在程序中手动为字段赋值,在admin中字段也会成为只读的。 多对多关系
多对多关系,会创建第三张表,建立好表与表之间的关系自动创建的(ManyToManyField字段可以自动创建第三张表)
如果是手动创建第三张表:ManyToManyField一定要加俩个参数,through=中间表,through_filed通过哪俩个字段关联

安装pymysql

pip3 install pymysql
在__ini__.py中加入:djagno默认操作mysql数据库使用的是 mysqlDB模块,在python2中没问题,但是在python3中已经不维护了,不支持,python3中操作mysql咱么用pymysql比较多,但是需要加下面两句话才能正常使用-----》猴子补丁(动态替换--把源码使用mysqlDB替换成pymysql的东西)
import pymysql
pymysql.install_as_MySQLdb()
但是在django2.0.7及以后版本,需要改源码才能使用:operations.py---》146行,改成query = query.encode(errors='replace') 也可以直接使用:mysqlclient:有可能装不上
pip3 install mysqlclient

BBS项目开发的更多相关文章

  1. Django学习笔记(19)——BBS+Blog项目开发(3)细节知识点补充

    本文将BBS+Blog项目开发中所需要的细节知识点进行补充,其中内容包括KindEditor编辑器的使用,BeautifulSoup 模块及其防XSS攻击,Django中admin管理工具的使用,me ...

  2. 项目实战:BBS+Blog项目开发

    01-博客系统之功能需求 02-博客系统之表结构设计1 03-博客系统之表结构设计2 04-博客系统之表结构设计3 05-博客系统之表结构设计4 06-博客系统之表机构设计5 07-博客系统之创建系统 ...

  3. [Openwrt 项目开发笔记]:Samba服务&vsFTP服务(四)

    [Openwrt项目开发笔记]系列文章传送门:http://www.cnblogs.com/double-win/p/3888399.html 正文: 在上一节中,我们讲述了如何在路由器上挂载U盘,以 ...

  4. BBS项目-01

    目录 BBS项目 BBS开发流程: BBS表格创建: BBS项目 BBS开发流程: BBS项目: 开发流程: 需求分析 草拟一些项目的大致技术点和流程 架构设计 架构师(框架 语言 数据库 缓存数据库 ...

  5. 小福bbs—项目系统设计与数据库设计

    这个作业属于哪个课程 班级链接 这个作业要求在哪里 作业要求的链接 团队名称 小福bbs 这个作业的目标 实现对校园论坛软件的制作,使其能够发布帖子,查看信息等 作业的正文 小福bbs--项目需求分析 ...

  6. Django项目开发,XSS攻击,图片防盗链,图片验证码,kindeditor编辑器

    目录 一.Django项目开发 1. 项目开发流程 2. auth模块的补充 (1)django的admin可视化管理页面 (2)将admin可视化管理页面的模型表显示成中文 (3)auth模块的用户 ...

  7. day75 bbs项目☞后台管理+修改头像

    目录 一.后台管理之添加文章 二.修改用户头像 bbs项目总结 一.后台管理之添加文章 添加文章有两个需要注意的问题: 文章的简介切取,应该想办法获取到当前文章的文本内容后再截取字符 XSS攻击,由于 ...

  8. Django学习day15BBS项目开发4.0(完结)

    每日测验 """ 今日考题: 1.简述自定义标签,过滤器,inclusion_tag的方法,并简要说一说三者的特点及响应流程 2.简述个人侧边栏展示及筛选业务逻辑 3.简 ...

  9. Django学习day14BBS项目开发1.0

    每日测验 """ 1.简述auth模块功能 2.简述项目开发流程 3.简述bbs表设计 """ 内容回顾 auth模块 "&quo ...

  10. nginx之location、inmp架构详解、BBS项目部署

    本期内容概要 location lnmp架构 部署BBS项目 内容详细 1.location 使用Nginx Location可以控制访问网站的路径 但一个server可以有多个location配置 ...

随机推荐

  1. 痞子衡嵌入式:i.MXRT10xx系列ROM的UART SDP设置不同波特率的方法与实践

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT10xx系列ROM的UART SDP设置不同波特率的方法. 恩智浦 i.MXRT 四位数系列目前分为 RT10xx 和 RT ...

  2. ODOO14里面qweb使用案例

    在ODOO里面中,通过QWeb来对模板进行渲染后加载到浏览器中,故作笔记以便于查询简介:Qweb被用作OpenERP的Web客户端模板引擎.它是一种基于XML的模板语言,同Genshi, Thymel ...

  3. 通义灵码2.5+qwen3——节假日抢票不用愁,基于12306-MCP实现个人火车票智能查询小助手!

    ​ 在日常生活中,12306 是中国铁路售票系统的官方平台.为了提升购票效率.自动化查询余票信息以及获取车站代码等功能,我们希望通过使用智能体编程方式,结合 MCP(Model-as-a-Servic ...

  4. 记一次SSD性能瓶颈排查之路——寿命与性能之间的取舍

    1. 背景  我就职于一家轨道交通行业公司,负责的产品之一是日志记录板卡配套软件.有一天接到了现场报告,记录软件出现通信异常,将日志数据拉回来以后,发现出现异常时,CPU使用率接近100%,记录相关软 ...

  5. python中的split()函数

    Python split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串 a,b,c=input().split(,) 意思是在a,b,c三个输入值直接 ...

  6. burpsuite插件-验证码识别插件使用教程

    一.插件下载 下载最新插件与验证码识别端(captcha-killer-modified.jar.codereg.py) 使用Burp加载captcha-killer-modified.jar 安装p ...

  7. [abc309 G] Ban Permutation

    G - Ban Permutation 首先看到绝对值,很烦,考虑取掉绝对值得到\(p_i\leq i-X\)或\(p_i\geq i+X\) 然后我们就自然而然有了一个暴力的想法,设\(dp[i][ ...

  8. 【攻防世界】Web | wife_wife 详细题解WP

    [攻防世界] | Web | wife_wife详细题解WP 进入题目环境,首先进入sign up创建一个admin用户,下方有勾选 is admin,打上勾 随便填写Invite Code,进行抓包 ...

  9. MQTT网关连接华为云物联网平台应用

    1.概述 ZLAN5143D是一款专门为工业环境设计的RS485设备数据采集器/物联网网关,兼具串口服务器.Modbus网关.MQTT网关.RS485转JSON等多种功能于一体.如图 1所示,可以连接 ...

  10. antdv和vue3和表格拖拽排序

    先看看效果 代码 helper.js export const data = [ { key: "1", name: "张三", age: 32, addres ...