Web框架开发-BBS(表、登录、注册、文件上传)

news2024/11/17 1:56:21

一、博客系统表关系

 

 models.py

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

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

from django.contrib.auth.models import AbstractUser

from django.db import models

# Create your models here.

class UserInfo(AbstractUser):

    """

    用户信息

    """

    nid = models.AutoField(primary_key=True)

    telephone = models.CharField(max_length=11, null=True, unique=True)

    avatar = models.FileField(upload_to='avatars/', default="/avatars/default.png")

    create_time = models.DateTimeField(verbose_name='创建时间', auto_now_add=True)

    blog = models.OneToOneField(to='Blog', to_field='nid', null=True, on_delete=models.CASCADE)

    def __str__(self):

        return self.username

class Blog(models.Model):

    """

    博客信息表(站点表)

    """

    nid = models.AutoField(primary_key=True)

    title = models.CharField(verbose_name='个人博客标题', max_length=64)

    site_name = models.CharField(verbose_name='站点名称', max_length=64)

    theme = models.CharField(verbose_name='博客主题', max_length=32)

    def __str__(self):

        return self.title

class Category(models.Model):

    """

    博主个人文章分类表

    """

    nid = models.AutoField(primary_key=True)

    title = models.CharField(verbose_name='分类标题', max_length=32)

    blog = models.ForeignKey(verbose_name='所属博客', to='Blog', to_field='nid', on_delete=models.CASCADE)

    def __str__(self):

        return self.title

class Tag(models.Model):

    nid = models.AutoField(primary_key=True)

    title = models.CharField(verbose_name='标签名称', max_length=32)

    blog = models.ForeignKey(verbose_name='所属博客', to='Blog', to_field='nid', on_delete=models.CASCADE)

    def __str__(self):

        return self.title

class Article(models.Model):

    nid = models.AutoField(primary_key=True)

    title = models.CharField(max_length=50, verbose_name='文章标题')

    desc = models.CharField(max_length=255, verbose_name='文章描述')

    create_time = models.DateTimeField(verbose_name='创建时间', auto_now_add=True)

    content = models.TextField()

    comment_count = models.IntegerField(default=0)

    up_count = models.IntegerField(default=0)

    down_count = models.IntegerField(default=0)

    user = models.ForeignKey(verbose_name='作者', to='UserInfo', to_field='nid', on_delete=models.CASCADE)

    category = models.ForeignKey(to='Category', to_field='nid', null=True, on_delete=models.CASCADE)

    tags = models.ManyToManyField(

        to="Tag",

        through='Article2Tag',

        through_fields=('article''tag'),

    )

    def __str__(self):

        return self.title

class Article2Tag(models.Model):

    nid = models.AutoField(primary_key=True)

    article = models.ForeignKey(verbose_name='文章', to="Article", to_field='nid', on_delete=models.CASCADE)

    tag = models.ForeignKey(verbose_name='标签', to="Tag", to_field='nid', on_delete=models.CASCADE)

    class Meta:

        unique_together = [

            ('article''tag'),

        ]

    def __str__(self):

        = self.article.title + "---" + self.tag.title

        return v

class ArticleUpDown(models.Model):<

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1548628.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DID分析:上市公司专精特新认定的长期影响(5W+数据)

参照陈金勇&#xff08;2024&#xff09;等人的做法&#xff0c;将上市公司与国家级专精特新小巨人、省级专精特新小巨人、国家级专精特新中小企业、省级专精特新中小企业名单数据进行匹配。包含4类认定标准和年份&#xff0c;并利用四类认定标准分别构建了四类多期DID 一、数据…

进程、线程、协程与虚拟线程(进程相关)

进程、线程、协程与虚拟线程 这一次我们从头&#xff0c;从最大的先开始说&#xff0c;我们从进程开始&#xff0c;因为内容比较多&#xff0c;所以我们分为几个不同的文章来介绍。先从进程&#xff0c;再从线程&#xff0c;最后介绍协程与虚拟线程。 简介 我们以一张操作系…

自动驾驶传感器:惯性导航IMU原理

自动驾驶传感器&#xff1a;惯性导航IMU原理 附赠自动驾驶学习资料和量产经验&#xff1a;链接 组合导航里包含了GNSS卫星导航模块与IMU惯性导航模块&#xff0c;前一篇文章写了GNSS模块&#xff0c;本章写IMU惯导&#xff0c;也是本系列最后一篇文章。 1. 惯性测量单元&…

让 AI 帮你写代码,开发提效神器来了

如今&#xff0c;大量程序员已经习惯在 AI 辅助下进行编程。据调研&#xff0c;AI 编码工具将程序员工作效率提升 50% 以上。 通义灵码是目前国内最受开发者喜爱的 AI 编码助手&#xff0c;可以提供行级/函数级实时续写、自然语言生成代码、单元测试生成、代码优化、注释生成、…

回顾皆草木,唯你是青山~

新中式小飞袖连衣裙 每一件衣裳都是时间的礼赞 是炎炎夏日的一抹清新 传统元素与现代时尚设计相结合 面料舒适透气&#xff0c;裙摆飘逸灵动 宛如林间自由洒脱的小仙子~

【Java】IDEA集成开发工具中英文切换

大家好&#xff0c;我是全栈小5&#xff0c;欢迎阅读小5的系列文章。 这是《Java》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解&#xff0c; 特别是针对知识点的概念进行叙说&#xff0c;大部分文章将会对这些概念进行实际例子验证&#xff0c;以此达到加深对知识…

众望所归:FoxPro之后,可视化编程再现新突破,国产力作

许多以前的计算机语言&#xff0c;至今仍然展现出它们强大的生命力。 DOS时代下的FoxPro 然而&#xff0c;曾经风靡一时的FoxPro语言&#xff0c;如今已逐渐淡出人们的视野&#xff0c;令人不禁感慨万分。 每当提及FoxPro&#xff0c;总是有着无尽的话题和回忆。 想当年&am…

65W智能快充—同为科技桌面PDU插座推荐

近10年&#xff0c;移动设备的智能化、功能化已经完全且紧密的融入到我们的基础生活与工作当中。 在常态化的电子设备的应用中&#xff0c;设备的电力续航以及后续的供电充电就尤为重要。 就目前而言&#xff0c;所有消费电子产品中的输入以及充电的接口&#xff0c;usb-c可以…

大模型入门(一)

大模型入门&#xff08;一&#xff09; 一、LLaMa 模型介绍1&#xff09;Pre-normalization2&#xff09;SwiGLU激活函数3&#xff09;RoPE旋转位置编码 二、Alpaca 模型介绍三、Vicuna 模型介绍 大模型入门&#xff08;一&#xff09;—— LLaMa/Alpaca/Vicuna   LLaMa模型是…

每日学习笔记:C++ STL迭代器特性(Iterator Trait)、自定义迭代器

迭代器特性(Iterator Trait) 注意不同的迭代器种类类型之前有继承关系&#xff1a; 为迭代器编写泛型函数 自定义迭代器 实例

几种靠谱的企业大文件安全传输方式,最后一种绝了

在数字化的浪潮中&#xff0c;企业的数据安全传输显得尤为关键。随着远程办公和云技术的普及&#xff0c;企业在保护敏感信息不被外泄方面面临着新的挑战。本文将探讨几种有效的企业数据安全传输方法&#xff0c;并着重阐述其中一种方法如何作为全面的解决方案&#xff0c;提供…

【2024系统架构设计】案例分析- 3 数据库

目录 一 基础知识 二 真题 一 基础知识 1 ORM ORM(Object—Relationl Mapping

探索AI大模型学习的未来之路

文章目录 一、引言二、AI大模型学习的理论基础2.1 深度学习2.2 数据处理 三、AI大模型的训练优化与应用实例3.1 训练优化3.2 AI大模型在特定领域的应用实例 四、AI大模型学习的注意点五、AI大模型学习的未来发展趋势与挑战5.1 发展趋势5.2 所面对的挑战 六、结论 一、引言 随着…

基于springboot+vue实现的民宿管理系统

作者主页&#xff1a;Java码库 主营内容&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app等设计与开发。 收藏点赞不迷路 关注作者有好处 文末获取源码 技术选型 【后端】&#xff1a;Java 【框架】&#xff1a;spring…

07、Lua 流程控制

Lua 流程控制 Lua 流程控制控制结构语句 Lua 流程控制 Lua编程语言流程控制语句通过程序设定一个或多个条件语句来设定。在条件为 true 时执行指定程序代码&#xff0c;在条件为 false 时执行其他指定代码。 以下是典型的流程控制流程图&#xff1a; 控制结构的条件表达式结…

视频智能分析系统TSINGSEE青犀AI算法中台介绍及应用场景

TSINGSEE青犀AI算法中台是一款平台型产品&#xff0c;专注于提供各行业中小场景中部署解决方案。平台具备接入广、性能强、支持跨平台、芯片国产化等特点&#xff0c;可提供丰富的视图接入能力和智能分析能力。平台支持将不同类型、不同协议前端设备&#xff0c;通过不同网络环…

工程企业的未来选择:Java版工程项目管理系统平台与数字化管理的融合

在现代化的工程项目管理中&#xff0c;一套功能全面、操作便捷的系统至关重要。本文将介绍一个基于Spring Cloud和Spring Boot技术的Java版工程项目管理系统&#xff0c;结合Vue和ElementUI实现前后端分离。该系统涵盖了项目管理、合同管理、预警管理、竣工管理、质量管理等多个…

java算法day36 | 贪心算法 part05 ● 435. 无重叠区间 ● 763.划分字母区间 ● 56. 合并区间

435. 无重叠区间 思路&#xff1a; 重叠区间典型题目&#xff0c;先按照左边界排序&#xff0c;再从左到右判断相邻区间是否重叠&#xff0c;重叠则删除其中一个。 class Solution {public int eraseOverlapIntervals(int[][] intervals) {Arrays.sort(intervals,(a,b)->{r…

【漏洞复现】用友U8 login2.RegisterServlet接口处存在SQL注入漏洞

免责声明&#xff1a;文章来源互联网收集整理&#xff0c;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;所产生的一切不良后果与文章作者无关。该…

手把手教你 - JMeter压力测试

前言 压力测试是每一个Web应用程序上线之前都需要做的一个测试&#xff0c;他可以帮助我们发现系统中的瓶颈问题&#xff0c;减少发布到生产环境后出问题的几率&#xff1b;预估系统的承载能力&#xff0c;使我们能根据其做出一些应对措施。所以压力测试是一个非常重要的步骤&…