importpymysql),告诉django使用pymysql连接数据库3.静态文件路径在settings里配置一下,并且在项目文件夹下新建一个静态文件夹">

位置: IT常识 - 正文

bbs项目前期准备和表设计(做项目前期)

编辑:rootadmin
一、前期准备 1.新建一个django项目 2.连接mysql数据库(注意需要在init文件里面书写import pymysql),告诉django使用pymysql连接数据库 3.静态文件路径在settings里配置一下,并且在项目文件夹下新建一个静态文件夹 二、bbs项目表设计 做一个项目最首要 ... 一、前期准备1.新建一个django项目2.连接mysql数据库(注意需要在init文件里面书写target="_blank">import pymysql),告诉django使用pymysql连接数据库3.静态文件路径在settings里配置一下,并且在项目文件夹下新建一个静态文件夹二、bbs项目表设计

推荐整理分享bbs项目前期准备和表设计(做项目前期),希望有所帮助,仅作参考,欢迎阅读内容。

bbs项目前期准备和表设计(做项目前期)

文章相关热门搜索词:项目前期需要了解哪些信息,项目前期准备阶段,项目前期准备工作包括哪些,项目前的准备,项目前期准备阶段,项目前期要件是什么,项目前期准备工作包括哪些,项目前期准备工作包括哪些,内容如对您有帮助,希望把文章链接给更多的朋友!

做一个项目最首要的表的设计,一个表设计不好,后续开发的地基就不牢!

"""1.用户表:要继承AbstractUser类扩展字段:phone:用户电话avatar:用户头像create_time:创建时间2.个人站点表:用户输入什么url就跳转到对应的站点字段:site_name:站点名称site_title:站点标题site_theme:站点主题3.文章表:字段:title:文章标题desc:文章简介content:文章内容create_time:发布时间下述三个字段虽然可以从其他表中获取,但是频繁的跨表查询效率较低,可以直接在文章表里设计该字段,点赞数+1时只要同步给文章表里的该字段+1就行!(数据库字段优化)up_num:点赞数 down_num:点踩数comment_num:评论数4.文章分类表:字段:name:分类名5.文章标签表:字段:name:标签名6.点赞点踩表:记录了哪个用户给哪个文章点赞还是点踩字段:user:用户主键值 ForeignKey(to='UserInfo')article:文章主键值 ForeignKey(to='Article')is_up:是否点赞(布尔值字段类型)is_down:是否点踩(布尔值字段类型)7.评论表:记录哪个用户给哪个文章评论了什么内容字段:user:用户 ForeignKey(to='UserInfo')article:文章 ForeignKey(to='Article')content:评论内容comment_time:评论时间# 评论内容有跟评论和子评论的区别,跟评论是直接评论文章的,子评论是评论跟评论的parent:自关联 ForeignKey(to='Comment',null=True) to里面也可以写成self表示自己关联自己"""

七张表之间的关系

1.用户表和个人站点表:一对一关系,外键建在用户表2.个人站点表和文章标签表:一对多关系,外键建在文章标签表3.个人站点表和文章分类 表:一对多关系,外键建在文章分类表4.个人站点和文章表:一对多关系,外键建在文章表5.文章表和文章标签表:多对多关系,外键建在文章表6.文章表和文章分类表:一对多关系,外键建在文章分类表

接下来,我们就可以在models.py里创建对应的表了!

bbs项目表创建源码from django.db import modelsfrom django.contrib.auth.models import AbstractUser# Create your models here.# 1、用户表:继承AbstractUser类,需要先导入这个类class UserInfo(AbstractUser): phone = models.BigIntegerField(verbose_name='电话',null=True) avatar = models.FileField(upload_to='avatar/',default='avatar/default.png',verbose_name='头像') """ 给avatar字段传文件对象,该文件会自动保存到upload_to='avatar/'指定的文件夹下,这个文件夹需要自己在项目文件夹下创建 数据库里的avatar字段只保存文件路径,同时可以设置一个默认头像 """ create_time = models.DateTimeField(auto_now_add=True,verbose_name='创建时间') # 用户表与个人站点表一对一关系,外键建在用户表 blog = models.OneToOneField(to='Blog',on_delete=models.CASCADE,null=True)# 2、个人站点表class Blog(models.Model): site_name = models.CharField(verbose_name='站点名称',max_length=64) site_title = models.CharField(verbose_name='站点标题',max_length=64) site_theme = models.CharField(verbose_name='站点主题',max_length=256) # 存的是css、js样式的路径# 3、文章表class Article(models.Model): title = models.CharField(verbose_name='文章标题',max_length=64) desc = models.CharField(verbose_name='文章摘要',max_length=256) content = models.TextField(verbose_name='文章内容') create_time = models.DateTimeField(verbose_name='创建时间',auto_now_add=True) # 数据库字段设计优化 up_num = models.IntegerField(verbose_name='点赞数',default=0) down_num = models.IntegerField(verbose_name='点踩数',default=0) comment_num = models.IntegerField(verbose_name='评论数',default=0) # 个人站点表和文章表一对多关系,外键建在文章表 blog = models.ForeignKey(to='Blog',on_delete=models.CASCADE,null=True) # 文章表和文章分类表是一对多关系,外键建在文章表 category = models.ForeignKey(to='Category',null=True,on_delete=models.CASCADE) # 多对多关系表的外键 tag = models.ManyToManyField(to='Tag',through='Article2Tag',through_fields=('article','tag')) # 通过Article2Tag这个张表查article就把Article2Tag里的article字段放前面# 文章表和标签表的多对多表创建,采用的是半自动的方式,利用扩展自动和查询class Article2Tag(models.Model): article = models.ForeignKey(to='Article',null=True,on_delete=models.CASCADE) tag = models.ForeignKey(to='Tag',null=True,on_delete=models.CASCADE)# 4、文章分类表class Category(models.Model): name = models.CharField(verbose_name='分类名',max_length=32) # 个人站点表和文章分类表是一对多关系,外键建在文章分类表 blog = models.ForeignKey(to='Blog',null=True,on_delete=models.CASCADE)# 5、文章标签表class Tag(models.Model): name = models.CharField(verbose_name='标签名',max_length=32) # 个人站点表和文章标签表是一对多关系,外键建在文章标签表 blog = models.ForeignKey(to='Blog',null=True,on_delete=models.CASCADE)# 6、点赞点踩表class UpAndDown(models.Model): user = models.ForeignKey(to='UserInfo',on_delete=models.CASCADE) article = models.ForeignKey(to='Article',on_delete=models.CASCADE) is_up = models.BooleanField() is_down = models.BooleanField()# 7、评论表class Comment(models.Model): user = models.ForeignKey(to='UserInfo',on_delete=models.CASCADE) article = models.ForeignKey(to='Article',on_delete=models.CASCADE) content = models.CharField(verbose_name='评论内容',max_length=256) create_time = models.DateTimeField(verbose_name='评论时间',auto_now_add=True) # 子评论,自关联 parent = models.ForeignKey(to='self',on_delete=models.CASCADE)
本文链接地址:https://www.jiuchutong.com/zhishi/313254.html 转载请保留说明!

上一篇:三、循环语句基础(循环语句例题及解析)

下一篇:dede标签云(TAG)随机颜色及大小的实现方法(dede标签的使用)

  • 华为p30有贴膜吗(华为p30表面贴的是膜吗)

    华为p30有贴膜吗(华为p30表面贴的是膜吗)

  • 星标朋友动态会有提示吗(设为星标朋友后朋友圈有变化吗)

    星标朋友动态会有提示吗(设为星标朋友后朋友圈有变化吗)

  • word怎样删除最后一页(word文档忘了保存,如何恢复最近)

    word怎样删除最后一页(word文档忘了保存,如何恢复最近)

  • 虎牙发的弹幕主播那没显示(虎牙发弹幕主播有钱吗)

    虎牙发的弹幕主播那没显示(虎牙发弹幕主播有钱吗)

  • 微信运动给别人点赞怎么取消(微信运动给别人点赞别人能看到吗)

    微信运动给别人点赞怎么取消(微信运动给别人点赞别人能看到吗)

  • 支付宝跟淘宝怎么解绑(支付宝跟淘宝怎么绑定)

    支付宝跟淘宝怎么解绑(支付宝跟淘宝怎么绑定)

  • 微信怎么置顶到第一个(微信怎么置顶到另一个人)

    微信怎么置顶到第一个(微信怎么置顶到另一个人)

  • 租的充电宝丢了怎么办(租的充电宝丢了又找到了)

    租的充电宝丢了怎么办(租的充电宝丢了又找到了)

  • 芒果tv弹幕在哪里打开(芒果tv弹幕在哪里打开电脑)

    芒果tv弹幕在哪里打开(芒果tv弹幕在哪里打开电脑)

  • 怎么退出修订模式(退出修订状态)

    怎么退出修订模式(退出修订状态)

  • ps边缘羽化在哪里(ps2018边缘羽化)

    ps边缘羽化在哪里(ps2018边缘羽化)

  • 华为mate30pro怎么安装双卡(华为mate30pro怎么刷机)

    华为mate30pro怎么安装双卡(华为mate30pro怎么刷机)

  • 华为电话卡怎么插(华为电话卡怎么切换1或者2)

    华为电话卡怎么插(华为电话卡怎么切换1或者2)

  • wps表格怎么删除指定内容(wps表格怎么删除空白页)

    wps表格怎么删除指定内容(wps表格怎么删除空白页)

  • 顺滑版手机是什么意思(手机屏幕怎么顺滑)

    顺滑版手机是什么意思(手机屏幕怎么顺滑)

  • 苹果xs广角怎么打开(苹果xs广角怎么没有0.5)

    苹果xs广角怎么打开(苹果xs广角怎么没有0.5)

  • rpa是什么(rpa是什么的缩写)

    rpa是什么(rpa是什么的缩写)

  • 拼多多开团怎么开方法(拼多多开团怎么开的视频)

    拼多多开团怎么开方法(拼多多开团怎么开的视频)

  • ps怎么设计海报字体的(ps怎么设计海报背景图)

    ps怎么设计海报字体的(ps怎么设计海报背景图)

  • mate20三个摄像头的作用(mate20三个摄像头分工)

    mate20三个摄像头的作用(mate20三个摄像头分工)

  • airpods怎么区分一代二代(airpods怎么区分真假)

    airpods怎么区分一代二代(airpods怎么区分真假)

  • 递增是升序还是降序(递增顺序是降序还是升序)

    递增是升序还是降序(递增顺序是降序还是升序)

  • 京东退货如何上门(京东退货如何上传凭证)

    京东退货如何上门(京东退货如何上传凭证)

  • 管理员已阻止你运行此应用解决方法(管理员已阻止你运行此应用 win10)

    管理员已阻止你运行此应用解决方法(管理员已阻止你运行此应用 win10)

  • 最高造价的苹果商店(最值钱的苹果)

    最高造价的苹果商店(最值钱的苹果)

  • uniapp和vue组件之间的传值方法(父子传值,兄弟传值,跨级传值,vuex)(uniapp和vue哪个好)

    uniapp和vue组件之间的传值方法(父子传值,兄弟传值,跨级传值,vuex)(uniapp和vue哪个好)

  • 年度应纳税所得额计算公式
  • 企业所得税缴纳时计提可以吗
  • 更正申报多交的个税
  • 发票勾选是否为转内销凭证是什么意思
  • 财产租赁合同印花税率多少
  • 跨越发票冲红,填了红字信息表,没有负数发票
  • 农产品增值税抵扣政策文件
  • 增值税发票选择确认平台勾选注意事项
  • 企业辅助生产车间
  • 合伙企业的合伙协议
  • 无形资产减值损失可以转回吗
  • 佣金支出和手续费税前扣除相关政策依据及会计处理
  • 学校捐赠收入需上交吗
  • 公司领导培训费怎么入账
  • 个体户公司需要交哪些税
  • 个人遗失的定义
  • 增值税专票电话号码错了有关系吗
  • 无票收入记账多的进项发票怎么处理?
  • 委托加工物资的消费税
  • 计提房产税的会计分录怎样做
  • 合伙企业年度汇缴申报
  • 继续教育专项附加扣除需要什么材料
  • 认缴制度下实收资本确认条件
  • 上月的应付账款怎么记账
  • 阻止系统蓝屏后怎么恢复
  • 承兑汇票可以入个人账户吗
  • php关联数组转索引数组
  • realjbox.exe - realjbox是什么进程 作用是什么
  • 取得经营所得及其他所得交纳的所得税
  • 移动临时文件
  • win10怎么设置硬盘为第一启动项
  • vue+cesium怎么实现地图的加载
  • 上市公司发行股票是好还是坏
  • 投资收益怎么算例题
  • 应收票据与应付票据的使用与哪种银行结算方式有关
  • 阿里云onedata
  • PHP:imagecolorstotal()的用法_GD库图像处理函数
  • 收取增值税一般是多少
  • 请问酒厂销售酒怎么样?
  • php中数组的概念
  • 2022年数学建模获奖结果
  • 数据挖掘技术介绍
  • win11磁盘分区后不显示
  • 出口退税备案是代理的需要主办会计身份证复印件吗
  • vmware workstation pro怎么卸载干净
  • 固定资产损失用什么科目
  • 哪些税种需要计提吗
  • python.mat
  • 小程序集合软件
  • 个体户开发票超过定额是如何交税?
  • 入库单入账税务会查吗
  • 增值税销项税额抵减账务处理
  • 定期定额怎么申报个人所得税
  • 预付工程款会计分录
  • 处置固定资产取得的净收益属于当期的收入
  • 结转损益不平是什么原因造成的
  • 有会计从业资格证还有用吗
  • 低值易耗的管理制度
  • 生产企业代理出口退税
  • 房地产会计科目明细表
  • 成本会计核算方法论文怎么写
  • sql server触发器实验
  • win8关闭触屏
  • 设备管理器xp系统
  • Ubuntu安装搜狗输入法
  • Linux Kernel 4.5在3月15日发布最终版
  • 物联网1.0 2.0 3.0
  • android开发环境的搭建实验总结
  • 批处理语言 从入门到精通
  • herd什么意思
  • python回归结果输出
  • bat实现的模仿黑客帝国里面的数码雨
  • python ip地址转换
  • 整理的什么
  • 方块大作战百科
  • 曲靖市税务局领导班子
  • 定额发票查询入口在哪里
  • 宁夏地税局局长
  • 纳税信用b级可以贷款多少
  • 昆明国家高新技术产业开发区管理委员会官方门户网站
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设