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

  • 拼多多里拼小圈删除方法是什么(拼多多里拼小圈关闭了别人能看到吗)

    拼多多里拼小圈删除方法是什么(拼多多里拼小圈关闭了别人能看到吗)

  • 淘宝上的视频怎么下载(淘宝上的视频怎么保存到相册)

    淘宝上的视频怎么下载(淘宝上的视频怎么保存到相册)

  • 微信怎么加人不会异常(微信怎么加人不容易被限制)

    微信怎么加人不会异常(微信怎么加人不容易被限制)

  • 腾讯会议静音后还显示正在使用麦克风(腾讯会议静音后打电话别人可以听到吗)

    腾讯会议静音后还显示正在使用麦克风(腾讯会议静音后打电话别人可以听到吗)

  • 苹果11充电发烫怎么解决(苹果11充电发烫会爆炸吗)

    苹果11充电发烫怎么解决(苹果11充电发烫会爆炸吗)

  • 快手怎么横屏看视频(快手怎么横屏看直播回放)

    快手怎么横屏看视频(快手怎么横屏看直播回放)

  • 苹果手机控制中心划不出来了怎么办(苹果手机控制中心在哪里打开)

    苹果手机控制中心划不出来了怎么办(苹果手机控制中心在哪里打开)

  • 5g的三大技术分别是哪些(5g的3大技术)

    5g的三大技术分别是哪些(5g的3大技术)

  • p40支持无线快充吗(p40无线快充13w能带动吗)

    p40支持无线快充吗(p40无线快充13w能带动吗)

  • 饿了么网络异常(饿了么网络异常什么意思)

    饿了么网络异常(饿了么网络异常什么意思)

  • 三星s20出厂自带保护膜吗(三星s20出厂带手机壳吗)

    三星s20出厂自带保护膜吗(三星s20出厂带手机壳吗)

  • 小米手机充电变慢了怎么回事(苹果手机互相充电)

    小米手机充电变慢了怎么回事(苹果手机互相充电)

  • 手机上照片怎么重命名(手机上照片怎么上传到报名表上)

    手机上照片怎么重命名(手机上照片怎么上传到报名表上)

  • 系统磁盘分区必须为什么格式才能安装(系统磁盘分区必须分盘吗)

    系统磁盘分区必须为什么格式才能安装(系统磁盘分区必须分盘吗)

  • 固态硬盘可以插几个(固态硬盘可以插拔吗)

    固态硬盘可以插几个(固态硬盘可以插拔吗)

  • 华为20i手机怎么返回(华为20i手机怎么样)

    华为20i手机怎么返回(华为20i手机怎么样)

  • 淘宝抢购提醒在哪里看(淘宝抢购提醒在哪里)

    淘宝抢购提醒在哪里看(淘宝抢购提醒在哪里)

  • 抖音音浪怎么算钱的(抖音音浪怎么获得)

    抖音音浪怎么算钱的(抖音音浪怎么获得)

  • 公交车二维码怎么下载(公交车二维码怎么搞)

    公交车二维码怎么下载(公交车二维码怎么搞)

  • word如何检查文档并删除不可见内容(word如何检查文字符合自己规定的内容)

    word如何检查文档并删除不可见内容(word如何检查文字符合自己规定的内容)

  • airpods有线和无线的区别(airpods有线和无线充电盒的区别)

    airpods有线和无线的区别(airpods有线和无线充电盒的区别)

  • 给airpods充电盒充电需要把耳机拿出来吗(给airpods充电盒充电时灯什么颜色)

    给airpods充电盒充电需要把耳机拿出来吗(给airpods充电盒充电时灯什么颜色)

  • 路由器已连接不可上网(路由器已连接不上网)

    路由器已连接不可上网(路由器已连接不上网)

  • Win11右键设计反人类?教你恢复完整右键菜单(windows11右键菜单设置)

    Win11右键设计反人类?教你恢复完整右键菜单(windows11右键菜单设置)

  • 工业企业取得土地使用权专用发票可以抵扣吗?
  • 租地建厂房房产税谁交
  • 销售收入怎么做会计凭证
  • 购买的金蝶软件怎么记账
  • 珠宝属于什么行业领域
  • 增值税16点税降到13点,补缴税款怎么算
  • 员工出国补贴标准
  • 外购的自用小轿车
  • 企业如何认定
  • 核定征收的企业所得税怎么算
  • 企业支付的工伤费用怎么入账
  • 企事业承包承租方缴纳的管理费税费
  • 以前年度企业所得税申报表怎么查
  • 已抵扣发票丢失如何处理
  • 暂估应付款借方
  • 发票丢失税局怎么罚款
  • bios咋进入
  • 为什么win7系统添加语言包
  • 开业庆典的活动内容
  • 本月计提增值税的金额是怎么得来的
  • win8快捷键大全
  • php -m
  • php加密解密函数高级
  • php 用户和密码
  • php详细安装步骤
  • 任务栏没反应怎么重启
  • win10新装系统我的电脑在哪
  • 废品损失的核算方式主要有
  • php 上传
  • PHP:imagesetstyle()的用法_GD库图像处理函数
  • 土增税税
  • vue怎么做兼容
  • 房产税城镇土地使用税税源信息采集
  • yii2组件的理解
  • php代码生成
  • python yolo
  • 中小企业内部分析
  • python opencv如何获取图片尺寸
  • 股权收购账务处理
  • 会计实务中的计提是什么意思
  • 增值税附加税减免政策2022年
  • 资产负债表中应付账款项目应根据什么填制
  • c语言怎么给函数传递数组
  • 小规模季度免税政策
  • 收回以前年度多发奖金分录
  • 自然人独资公司可以变更法人吗
  • 多计提的个税能退回给员工吗
  • 家禽养殖企业
  • 外贸企业出口退税流程(详细步骤)
  • 土地增值税清算收入如何确定
  • 收到股东的投资款现金流量表
  • 暂估应付账款借贷方向
  • 收履约保证金的会计分录
  • 公司团体体检一般什么价位
  • 购入的无形资产加计扣除怎么算
  • 出租办公楼收入属于收入吗
  • 企业会计准则规定,企业在对会计要素
  • 总分类账建账顺序
  • mysql连接问题
  • cmd shutdown命令
  • 双系统没有选择
  • 查看端口信息命令
  • win7系统关闭防火墙怎么关闭
  • 2016年Win10 RedStone将重大改版 微软小娜可以浮动
  • windows10储存
  • javascript对象的属性和方法
  • 微信小程序用户名怎么改名
  • node.js中fs模块
  • getmac/v
  • python3+PyQt5实现使用剪贴板做复制与粘帖示例
  • jQuery实现的tab标签切换效果示例
  • 金税全国客服电话
  • 电子税务局政策速递
  • 广西国税发票查询系统
  • 租车费为何不能抵扣
  • 仓储物流用地属于商业用地吗
  • 云南税务总局官网
  • 广汽传祺gs52013款2.0自动怎么样
  • 广东电子税务局官网登录入口手机版
  • 城市土地使用税计税依据
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设