• BBS第一天,项目开发流程,BBS项目功能分析,表设计,表字段的编写和数据库的迁移


    1.BBS项目开发流程

    • 1.什么是BBS项目?多人博客系统
    • 2.这个项目需要使用到的技术:django,mysql等
    • 3.项目通用的开发流程:
      • 项目立项(市场调研,对接客户)
      • 项目设计(设计软件功能,设计出原型图)
      • 项目具体设计(UI,切图)
      • 分任务开发
        • 前端:pc, 小程序,移动端
        • 后端:架构,数据库设计
      • 联调:前后端开发部门配合调试
      • 测试:测试功能,自动化测试,接口测试等
      • 运维:上线运行,对bug进行处理,版本迭代

    2.BBS项目功能分析

    • 1.注册功能
    • 2.登录功能
    • 3.首页:文章展示,导航栏,用户中心,广告位
    • 4.个人主页:文章展示,侧边栏过滤(分类,标签,时间)
    • 5.文章详情:点赞点踩,评论(父评论,子评论)
    • 6.后台管理:个人文章展示(增加,删除,修改文章)
    • 7.发布文章:富文本编辑器,xss攻击处理
    • 技术选型:python3.8 django2.2.2 mysql5.7 jQuery2.x bootstrap 3

    3…BBS项目表设计

    • 用户表(基于auth的user表扩写字段)
    • 博客表(和用户表是一对一关系)
    • 标签表(和博客表一对多,和文章表多对多)
    • 分类表(和博客表一对多,和文章表一对多)
    • 文章表(和博客表一对多)
    • 点赞点踩表(和用户表一对多,和文章表一对多)
    • 评论表表的关联关系(和用户表一对多,和文章表一对多)

    4.BBS项目表设计

    在这里插入图片描述

    5.项目表字段的编写和数据库的迁移

    1.提前准备
    • 1.安装django2.2.2: pip install django==2.2.2
    • 2.使用pycharm创建项目
    • 3.配置文件中进行以下配置
    'DIRS': [os.path.join(BASE_DIR , 'templates')]
        
    LANGUAGE_CODE = 'zh-hans'   # 语言中文
    TIME_ZONE = 'Asia/Shanghai' # 时区使用上海时区
    USE_I18N = True
    USE_L10N = True
    USE_TZ = False
    
    
    AUTH_USER_MODEL = 'blog.UserInfo'  // 这个是非常重要的东西
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 4.在models.py中写模型表
    from django.db import models
    from django.contrib.auth.models import AbstractUser
    # Create your models here.
    
    
    class UserInfo(AbstractUser):
        phone = models.CharField(max_length=32, null=True, verbose_name='手机号')
        avatar = models.FileField(upload_to='avatar/', default='avatar/default.png', verbose_name='头像')
        blog = models.OneToOneField(to='Blog', on_delete=models.CASCADE)
    
    class Blog(models.Model):
        title = models.CharField(max_length=32, null=True, verbose_name='主标题')
        site_name = models.CharField(max_length=32, null=True, verbose_name='副标题')
        site_style = models.CharField(max_length=32, null=True, verbose_name='个人站点样式')
    
    
    class Tag(models.Model):
        name = models.CharField(max_length=32, verbose_name='标签名字')
        blog = models.ForeignKey(to='Blog', on_delete=models.CASCADE)
    
    class Category(models.Model):
        name = models.CharField(max_length=32, verbose_name='分类名字')
        blog = models.ForeignKey(to='Blog', on_delete=models.CASCADE)
    
    
    class Article(models.Model):
        title = models.CharField(max_length=32, verbose_name='文章标题')
        desc = models.CharField(max_length=255, verbose_name='文章摘要')
        content = models.TextField(verbose_name='文章内容')
        create_time = models.DateTimeField(verbose_name='文章创建时间')
    
        blog = models.ForeignKey(to='Blog', on_delete=models.CASCADE)
        category = models.ForeignKey(to='Category', on_delete=models.CASCADE)
        tag = models.ManyToManyField(to='Tag')
    
    
    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(verbose_name='点赞点踩')
        create_time = models.DateTimeField(auto_now_add=True)
    
    
    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(max_length=64, verbose_name='文章内容')
        create_time = models.DateTimeField(auto_now_add=True)
    
        parent = models.ForeignKey(to='self', on_delete=models.CASCADE, null=True)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
  • 相关阅读:
    安装grafana
    get和post请求的区别
    《中国垒球》:跨界联赛·完美落幕
    开源博客项目Blog .NET Core源码学习(23:App.Hosting项目结构分析-11)
    mysql8.0英文OCP考试第31-40题
    JavaSE进阶、多线程
    Python入门进阶:68 个 Python 内置函数详解
    GEE|时间序列分析(二)
    2024 全国水科技大会暨第二届智慧水环境管理与技术创新论坛
    PDF中的某个图或表想几乎无损的插入ppt或者word里的方法
  • 原文地址:https://blog.csdn.net/Yydsaoligei/article/details/126859540