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标签的使用)

  • 浅谈微信营销产品如何取胜(微信营销的价值何在?)

    浅谈微信营销产品如何取胜(微信营销的价值何在?)

  • 没有抱怨的职业(没有任何抱怨的成语)

    没有抱怨的职业(没有任何抱怨的成语)

  • 苹果facetime用流量还是话费(苹果facetime不能用流量的吗)

    苹果facetime用流量还是话费(苹果facetime不能用流量的吗)

  • iphone13pro怎么设置铃声大小(iphone13pro怎么设置动态壁纸)

    iphone13pro怎么设置铃声大小(iphone13pro怎么设置动态壁纸)

  • 华为mate30不用按键怎么关机(华为mate30不按电源键开屏)

    华为mate30不用按键怎么关机(华为mate30不按电源键开屏)

  • 为什么校园扩列匹配失败(qq的校园扩列为什么一直都是0啊)

    为什么校园扩列匹配失败(qq的校园扩列为什么一直都是0啊)

  • word所认为的字符不包括汉字嘛(字word是指)

    word所认为的字符不包括汉字嘛(字word是指)

  • 空间隐身访问还有浏览记录嘛(空间隐身访问会有浏览量吗)

    空间隐身访问还有浏览记录嘛(空间隐身访问会有浏览量吗)

  • gt210相当于什么显卡(gt210 4g)

    gt210相当于什么显卡(gt210 4g)

  • 淘宝投诉大概需要多久(淘宝投诉大概需要多少钱)

    淘宝投诉大概需要多久(淘宝投诉大概需要多少钱)

  • iphone11pro是6g运存吗(iphone11pro到底是4g还是6g)

    iphone11pro是6g运存吗(iphone11pro到底是4g还是6g)

  • iphone xs max死机怎么办(iphone xs max死机重启)

    iphone xs max死机怎么办(iphone xs max死机重启)

  • 飞利浦剃须刀电池不存电怎么办(飞利浦剃须刀电池不耐用了怎么办)

    飞利浦剃须刀电池不存电怎么办(飞利浦剃须刀电池不耐用了怎么办)

  • 支付宝如何加大量好友(支付宝如何加大转账额度)

    支付宝如何加大量好友(支付宝如何加大转账额度)

  • 淘宝修改评价可以改评分吗(淘宝修改评价可以恢复吗)

    淘宝修改评价可以改评分吗(淘宝修改评价可以恢复吗)

  • 为什么谷歌商店一直在核对信息(为什么谷歌商店进不去)

    为什么谷歌商店一直在核对信息(为什么谷歌商店进不去)

  • 手机上删除的短信怎么恢复(手机上删除的短信)

    手机上删除的短信怎么恢复(手机上删除的短信)

  • 嘀嗒出行咋解封(嘀嗒出行咋解封账号)

    嘀嗒出行咋解封(嘀嗒出行咋解封账号)

  • 问卷星能提交两次吗(问卷星提交两次老师会选择哪个)

    问卷星能提交两次吗(问卷星提交两次老师会选择哪个)

  • 抖音拉黑会移除粉丝吗(抖音拉黑移除后对方的聊天记录还在吗)

    抖音拉黑会移除粉丝吗(抖音拉黑移除后对方的聊天记录还在吗)

  • 苹果如何滚动截屏(苹果如何滚动截微信长图)

    苹果如何滚动截屏(苹果如何滚动截微信长图)

  • 华为取消下滑搜索设置(华为取消下滑搜索栏)

    华为取消下滑搜索设置(华为取消下滑搜索栏)

  • 华为4和4e的区别(华为4和4i什么区别)

    华为4和4e的区别(华为4和4i什么区别)

  • HTML+CSS+JS 学习笔记(一)———HTML(中)(html/css/javascript标准教程)

    HTML+CSS+JS 学习笔记(一)———HTML(中)(html/css/javascript标准教程)

  • 学会这两种方式,我们就可以免费使用chatgpt(学会这两种方式英语)

    学会这两种方式,我们就可以免费使用chatgpt(学会这两种方式英语)

  • 计提个税会计科目怎么做
  • 一般纳税人简易征收的适用范围
  • 红冲去年暂估的费用怎么做账
  • 增值税勾选统计后怎么申报
  • 金税盘发票打印不全
  • 出口退免税备案
  • 深圳增值税发票选择确认平台使用
  • 政府扶持企业资金要交税吗
  • 专用发票可以下账吗
  • 多计费用以前年度损益调整
  • 增值税普通发票可以抵扣吗
  • 跨年发票能否次年入账
  • 企业必须要掌握哪些技能
  • 业务招待费可以结转下年抵扣吗
  • 生产企业出口退税操作流程视频
  • 公司买汽车怎么做内账
  • 小微企业声明函怎么开
  • 收到发票后怎么处理
  • 外币应收账款汇兑损失计入
  • 汽车维修发票是几个点
  • 研发样品销售成本
  • 造价咨询暂定级能接业务吗
  • 计提折旧会计分录的借方不可能是
  • php数组函数题目
  • php小程序开发完整教程
  • Win10 21H2 Build 21354 ISO 太阳谷官方镜像预览版下载
  • 公司账户上的钱怎么转到老板账户上
  • 购买生产用品计入什么科目
  • 来料加工怎么核算成本
  • PHP:date_default_timezone_get()的用法_Date Time函数
  • 免费设备投放项目
  • 前后端交互用什么技术
  • php获取访问者mac地址
  • 工商年报认缴出资时间填错了,有什么后果
  • 特定业务计算的应纳税所得额是指
  • 企业所得税退税流程
  • 钢琴块小游戏在线玩
  • yolov5 output
  • 修改公司章程注意事项
  • 发票边缘有孔的可以撕掉吗
  • 税前扣除 发票
  • 出口免抵退转免税
  • 独立核算的分公司
  • 疫情期间提涨薪合适吗
  • 无销项税能抵扣进项税吗
  • 分公司出现法律问题谁负责
  • 上年未结转的成本今年可以结转吗
  • 增值税退税是否算主营业务收入
  • 施工单位名称变更需不需要单独做一个联络函
  • 预付款项核销
  • 发票拿到了怎样作废
  • 哪些进项的税可以退税
  • 去年多计提的费用
  • 多交的应交税费资产负债表怎么填
  • 小规模纳税人销售要交税吗
  • 记账凭证填制的心得体会
  • Windows Server 2016第三技术预览版新特性详解:容器是亮点
  • 科普知识手抄报简单又漂亮
  • win8系统怎么关闭投影
  • softmangerlite.exe是什么进程 有什么用
  • linux基金会什么时候成立
  • centos如何安装yum
  • isignup.exe是什么进程 isignup进程查询
  • win7系统显卡驱动在哪个文件夹
  • 防止暴力破解的方法
  • win8自动进入桌面
  • linux图形界面与命令行
  • win8系统怎么安装软件
  • jquery获取表格一列的值
  • 网络游戏数据包
  • android ios UI
  • javascript点击按钮改变字体颜色
  • jquery右击事件
  • Android自定义控件开发入门与实战 百度网盘
  • 安卓样式大全
  • unity learning
  • 工作笔记范文100篇简短
  • 陕西省国家税务总局班子成员
  • 企业之间无偿借款是否交税
  • 法制员职责任务
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设