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

  • 苹果已经删除的照片怎么恢复(苹果已经删除的app怎么恢复)

    苹果已经删除的照片怎么恢复(苹果已经删除的app怎么恢复)

  • 苹果13系统自动亮度调节在哪里(苹果13系统自动锁屏在哪里设置)

    苹果13系统自动亮度调节在哪里(苹果13系统自动锁屏在哪里设置)

  • 腾讯视频怎么多人登录同一账号(腾讯视频怎么多台手机登录)

    腾讯视频怎么多人登录同一账号(腾讯视频怎么多台手机登录)

  • 切换表格快捷键(切换表格快捷键ctrl加什么键)

    切换表格快捷键(切换表格快捷键ctrl加什么键)

  • 快手小店的订单都看不了怎么回事(快手小店的订单怎么突然没有了)

    快手小店的订单都看不了怎么回事(快手小店的订单怎么突然没有了)

  • 麒麟820相当于骁龙多少的处理器(华为处理器麒麟和骁龙哪个好)

    麒麟820相当于骁龙多少的处理器(华为处理器麒麟和骁龙哪个好)

  • 咪咕怎么关闭连续包月(咪咕怎么关闭连播功能)

    咪咕怎么关闭连续包月(咪咕怎么关闭连播功能)

  • esp是文字文档后缀吗(文件esp是什么意思)

    esp是文字文档后缀吗(文件esp是什么意思)

  • 快手私信删除失败是什么原因(快手中的私信删除了怎么还能发现)

    快手私信删除失败是什么原因(快手中的私信删除了怎么还能发现)

  • u盘当pe后怎么还原(u盘做pe盘后还能存东西吗)

    u盘当pe后怎么还原(u盘做pe盘后还能存东西吗)

  • 同屏器需要网络吗(同屏器连接wifi那还能上网吗)

    同屏器需要网络吗(同屏器连接wifi那还能上网吗)

  • 1080p和720p哪个更清晰(1080p和720p哪个更流畅)

    1080p和720p哪个更清晰(1080p和720p哪个更流畅)

  • 钉钉对外名片怎么设置(钉钉对外名片怎么发送)

    钉钉对外名片怎么设置(钉钉对外名片怎么发送)

  • 华为mate30pro下载的软件在哪里(华为mate30pro下载完app怎么没在桌面上)

    华为mate30pro下载的软件在哪里(华为mate30pro下载完app怎么没在桌面上)

  • 手机自动接听怎么设置(手机自动接听怎么设置关闭)

    手机自动接听怎么设置(手机自动接听怎么设置关闭)

  • 魅族16s有智能遥控吗(魅族16s有遥控器功能吗)

    魅族16s有智能遥控吗(魅族16s有遥控器功能吗)

  • vivos5怎么开启隐私空间(vivos5隐藏图标怎么设置)

    vivos5怎么开启隐私空间(vivos5隐藏图标怎么设置)

  • 三星手机有录屏功能吗(苹果手机的录屏在哪)

    三星手机有录屏功能吗(苹果手机的录屏在哪)

  • 苹果11怎么关闭程序(苹果11怎么关闭打开的软件)

    苹果11怎么关闭程序(苹果11怎么关闭打开的软件)

  • 荣耀20支持防尘防水吗(荣耀20防摔吗)

    荣耀20支持防尘防水吗(荣耀20防摔吗)

  • 小米4支持全网通吗(小米4支持全网搜索吗)

    小米4支持全网通吗(小米4支持全网搜索吗)

  • iPhone11有耳机吗(苹果11有耳机吗?)

    iPhone11有耳机吗(苹果11有耳机吗?)

  • 手机反向充电什么意思(手机反向充电什么原理)

    手机反向充电什么意思(手机反向充电什么原理)

  • qq禁止安装程序咋解除(qq禁止安装程序咋解除oppor9)

    qq禁止安装程序咋解除(qq禁止安装程序咋解除oppor9)

  • dedecms织梦图片上传自动生成绝对路径方法(织梦图片集如何调用)

    dedecms织梦图片上传自动生成绝对路径方法(织梦图片集如何调用)

  • 综合所得税和单独计税
  • 月薪3万个人所得税是多少
  • 增值税发票查验平台怎么查询发票
  • 柴油车尾气处理液会计分录
  • 如何开银行卡账户
  • 红字发票信息表编号在哪里看
  • 跨年度项目预算怎么安排
  • 处置固定资产增值税和所得税报税能一致吗
  • 建筑工程项目的全生命周期包括
  • 租赁合同印花税计税依据
  • 减免税款期末有余额吗
  • 安装预算收入
  • 人工费开专票最多能开几个点的
  • 年终奖的税收筹措是什么
  • 销售方开票不填开户行
  • 预收账款属于金融资产吗为什么
  • 业务招待费在税法上的规定
  • 怎么查企业的增值税纳税额
  • 多付几分钱怎么做账
  • 基金预算收入核算的内容包括
  • 个税手续费返还要交增值税吗
  • 将原材料变成成品的过程
  • 公司自用产品 抵税吗?
  • 跨月冲红发票需收回原发票
  • 个人所得税和企业所得税都要交吗
  • 为什么电脑连上蓝牙耳机却是外放
  • real system
  • vue3项目打包
  • 问题解决能力
  • gba是什么文件
  • 旧货回收增值税率是多少
  • PHP:mcrypt_generic_init()的用法_Mcrypt函数
  • 报销凭证写错了怎么办
  • javaweb简单项目案例
  • 一个简单安全的小故事
  • lvresize命令
  • 购进免税农产品进项税额转出
  • 个税申请退税流程
  • 帝国cms会侵权吗为什么
  • 怎样回到一年前
  • 工会经费的主要用途
  • 固定资产降低
  • 收入总额是什么意思
  • sqlserver去掉字符串内的指定字符
  • sql 列转行
  • 企业所得税和个人所得税怎么算
  • 生产企业的生产许可证
  • 资本公积是什么意思,举个例子呗
  • 公对公打款发票
  • 外经证预缴的附加税税率
  • 购买汽车轮胎的注意事项
  • 保险收入如何做账
  • 目前哪些费用不能抵扣
  • 小企业会计准则以前年度损益调整
  • 会计清查是什么意思
  • sqlserver 查询锁
  • sql常用命令使用方法
  • mac系统操作教程
  • win8.1无法连接无线网
  • win2000停止服务
  • ubuntu如何安装
  • windows软件删除
  • Mac怎么快速显示桌面
  • linux 添加swap
  • smartagt.exe - smartagt是什么进程 什么文件
  • xmpdisabled什么意思
  • nmeo.exe是什么
  • 电脑kernel32.dll
  • win7u盘没有安全选项卡
  • jquery 使用
  • perl linux命令
  • openglvbo
  • jsp实现ajax
  • 我写的书日语
  • unity3d效果图
  • display getSize()
  • bootstrap要学到什么程度
  • 税务局社保服务
  • 宜昌市西陵区国税局局长
  • 房地产预缴土增值税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设