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

  • iphone12如何使用录屏功能(iphone12如何使用灵动岛)

    iphone12如何使用录屏功能(iphone12如何使用灵动岛)

  • ipad访问限制密码初始是多少(iPad访问限制密码忘了)

    ipad访问限制密码初始是多少(iPad访问限制密码忘了)

  • 苹果手机来电没声音怎么办(苹果手机来电没有声音是怎么回事)

    苹果手机来电没声音怎么办(苹果手机来电没有声音是怎么回事)

  • 快捷指令中心连不上网(快捷指令中心连不上)

    快捷指令中心连不上网(快捷指令中心连不上)

  • win10管理员密码默认是多少(win10管理员密码忘记了如何重置)

    win10管理员密码默认是多少(win10管理员密码忘记了如何重置)

  • 在计算机中 媒体指(在计算机中媒体设置)

    在计算机中 媒体指(在计算机中媒体设置)

  • 怎么修改已经做好的目录(怎么修改已经做好的视频)

    怎么修改已经做好的目录(怎么修改已经做好的视频)

  • 网页文件无法下载到指定文件夹(网页文件无法下载怎么办)

    网页文件无法下载到指定文件夹(网页文件无法下载怎么办)

  • lraaloo是什么型号(lora是什么牌子)

    lraaloo是什么型号(lora是什么牌子)

  • 探探卸载了为什么手机还收到信息(探探卸载了为什么还有定位)

    探探卸载了为什么手机还收到信息(探探卸载了为什么还有定位)

  • wps为什么老提示已停止工作(wps不停出现异常)

    wps为什么老提示已停止工作(wps不停出现异常)

  • 一个手机号能注册几个lofter(一个手机号能注册几个QQ)

    一个手机号能注册几个lofter(一个手机号能注册几个QQ)

  • 为什么快手看不到红包(为什么快手看不到好友在线)

    为什么快手看不到红包(为什么快手看不到好友在线)

  • 图形显卡和游戏显卡区别(图形显卡和游戏显卡可以一起用吗)

    图形显卡和游戏显卡区别(图形显卡和游戏显卡可以一起用吗)

  • dos命令怎么打开(dos命令怎么打开D盘中的照片)

    dos命令怎么打开(dos命令怎么打开D盘中的照片)

  • 查找手机离线什么意思(查找手机离线怎么办)

    查找手机离线什么意思(查找手机离线怎么办)

  • word艺术字上下型环绕怎么设置(word艺术字体怎么设置上下环绕)

    word艺术字上下型环绕怎么设置(word艺术字体怎么设置上下环绕)

  • 手机邮箱后缀是什么(手机邮箱后缀是啥)

    手机邮箱后缀是什么(手机邮箱后缀是啥)

  • excel如何使用合并计算(excel合并功能怎么用)

    excel如何使用合并计算(excel合并功能怎么用)

  • 怎么打开键盘灯(暗影精灵怎么打开键盘灯)

    怎么打开键盘灯(暗影精灵怎么打开键盘灯)

  • 电脑怎么扫描文件步骤(电脑怎么扫描文件图片)

    电脑怎么扫描文件步骤(电脑怎么扫描文件图片)

  • bios setup是什么意思中文翻译(bios-setup)

    bios setup是什么意思中文翻译(bios-setup)

  • xs强制重启(强制重启xsmax)

    xs强制重启(强制重启xsmax)

  • 苹果手机输入法符号在哪找(苹果手机输入法怎么设置)

    苹果手机输入法符号在哪找(苹果手机输入法怎么设置)

  • 华为畅享9与畅享9plus的区别(华为畅享9与畅享9e的区别)

    华为畅享9与畅享9plus的区别(华为畅享9与畅享9e的区别)

  • iphonexr有没有nfc(iphonexrnfc在哪个位置)

    iphonexr有没有nfc(iphonexrnfc在哪个位置)

  • 视频怎么马赛克(视频怎么马赛克部分地方)

    视频怎么马赛克(视频怎么马赛克部分地方)

  • 资金性质生产性是什么意思
  • 建筑发票开具与土增税扣有什么关系?
  • 市政绿化工程的施工方案
  • 利息按月计提分录
  • 开票和预缴税款跨月
  • 员工工资占公司收入比例怎么算
  • 所得税分支机构分配表怎么填
  • 企业所得税季度申报填写示例
  • 股东费用如何入账
  • 外贸企业的会计
  • 转增股本是不是缴个人所得税
  • 企业所得税查增值税吗
  • 商场返现活动怎么入账
  • 固定资产折旧提完了之后还要怎么处理吗
  • 外贸公司的出口清单
  • 购买的包装物用什么消毒
  • 企业接受基金投资的规定
  • 收入成本以前年度损益调整账务处理是怎样的?
  • 机动车强制保险新政策
  • 会议案例分析题及答案
  • 24个问题
  • 保险公司赔偿计入营业外收入
  • 录入凭证利息收入负数怎么录入?
  • 高速公路过路费查询网站
  • 电子税务局如何查询已开发票
  • 委托加工物资什么意思
  • 账外资产评估入账固定资产折旧可以税前扣除吗?
  • 农产品成本法计算抵扣
  • 苹果多屏协同win10
  • 企业所得税职工福利扣除标准
  • 个人投资所得税率是多少
  • android_app.intro
  • 分公司注销,总公司账务处理
  • php文件上传用什么请求方法
  • ecshop有哪些bug
  • uniapp自定义导航栏渐变
  • 国内版的chatpdf
  • 代扣代缴应付职工薪酬账务处理
  • 承租人经营租赁账务处理
  • 发票跟税有什么关系
  • 房地产企业卖房子增值税税率
  • python如何访问私有方法
  • 印花税的会计处理方法
  • 上市公司收购其他股票
  • 其他货币资金是什么科目
  • 配置英文
  • 购销合同印花税计税依据
  • 机票电子行程单查询
  • 个人工资怎么合理避税有什么方法
  • 支付结算规定的基本要求
  • 现金支票存根联和正联怎么盖章
  • 怎样计算税款
  • 本月无收入还用结转吗
  • 今年成立的公司需要申报残疾人保障金吗
  • 日常费用报销表格
  • 现金支票取现怎么记账
  • 什么企业可以开培训费发票
  • 预付调整到其他应付款
  • 原始凭证的会计分录
  • sqlserver 通用分页存储过程
  • win2000系统安装教程
  • 未能打开这台计算机上的组策略对象
  • Win7旗舰版系统文件名称
  • 删除window
  • 快速解决胃胀气
  • 简述javascript执行原理
  • 超级硬盘数据恢复软件v2.7
  • lru缓存机制是什么
  • python对excel操作真的有提高吗
  • 简略说明本岗位最高风险的防范措施和现场处置方案
  • jquery 操作json
  • python的五个特点
  • nodejs客户端程序开发
  • 在谈到民族这个概念是我们一再指出
  • 以下关于android应用程序的目录结构描述中,不正确的是
  • 国家税务总局司长
  • 未缴税税务说明书
  • 广东省地方税务局征收社会保险费欠费管理暂行办法
  • 差额征税差额开票怎么理解
  • 福建生育津贴要交满几个月
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设