Django 后端框架入门学习笔记(二)

构建数据数据表与数据库合并

在model.py中构建我们的数据表,并通过数据迁移将其合并入数据库中:

 可以看到,我们新建了两张数据表,而被注释的原先"STUDENT"数据表被删除了

运行数据迁移命令"migrate"

可以看到数据库中新增了我们在Model.py文件中新建的数据表:

 外键

常用字段

  ​CharField​:用于存储字符串类型,有最大长度限制

  ​IntegerField​:用于存储整数类型

  ​FloatField​:用于存储浮点数类型

  ​BooleanField​:用于存储布尔类型

  ​DateField​:用于存储日期类型

  ​DateTimeField​:用于存储日期和时间类型

  ​ImageField​:用于存储图片类型

  ​FileField​:用于存储文件类型

  ​ForeignKey​:外键 用于表示数据库表之间的关联关系

  ​OneToOneField​:一对一 用于表示一对一的关联关系

  ​ManyToManyField​:多对多 用于表示多对多的关联关系

外键的定义:

外键是一种用于建立表之间关联关系的约束,通常指的是一个模型中的一个或多个字段的值必须符合另一个模型中对应字段的值。

外键的作用:

1.去除冗余数据

2.数据结构化,提升使用效率

3.便于管理与操作

ForeignKey (外键)

这是外键最典型的一种形式,表示表与表之间的一对多的关系,例如有一个 Book 模型和一个 Author 模型,每本书都有一个作者,但一个作者可以写多本书。在这种情况下,你可以在 Book 模型中使用 ForeignKey 来定义作者字段(其中Author是Book的主表,而Book是Author的从表)。

class Author(models.Model):
    name = models.CharField(max_length=100)

class Book(models.Model):
    title = models.CharField(max_length=100)
    author = models.ForeignKey(Author, on_delete=models.CASCADE)

此时,在Book表中,含有书籍的名称字段,同时含有一列"author"外键指向单独的Author表,Author表中可以存储作者的各项信息,包括姓名、邮箱与联系方式等,Book数据表可以通过外键直接引用作者信息,后期若需要对作者信息进行变更,只需要对Author表进行操作即可。

OneToOneField (一对一字段)

这也是外键的一种特殊形式,但它要求在关联的两个模型之间都是唯一的关系。从数据库的角度看,它也是通过存储另一个表的主键值来实现的,但这个字段有唯一性约束。

  • 例如,如果你有一个 User 模型和一个 Profile 模型,每个用户只有一个个人资料,且每个个人资料只能属于一个用户。在这种情况下,你可以使用 OneToOneField
  • 创建的数据库表中,也会有一个额外的列来存储与另一个模型相关联的记录的 ID,但这个列必须是唯一的。
class User(models.Model):
    username = models.CharField(max_length=100)

class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    bio = models.TextField()

与先前的ForeignKey外键不同的地方在于,一对一的形式要求所储存的外键必须是具有唯一性的,可以视为该字段同时为这两张表的主键(具有唯一性)

ManyToManyField (多对多字段)

从数据库的角度看,多对多关系是通过一个额外的“关联”表来实现的,该表存储两个相关模型的外键值。虽然从逻辑上说它涉及到外键,但在传统的数据库术语中,它不是直接用一个字段在一个表中表示的,所以不像前两者那样直接被称为外键。

  • 例如,如果你有一个 Article 模型和一个 Tag 模型,一个文章可以有多个标签,且一个标签可以用于多篇文章。在这种情况下,你可以使用 ManyToManyField

  • 在数据库中,它会创建一个额外的“关联”表来存储这种多对多关系。

class Tag(models.Model):
    name = models.CharField(max_length=100)

class Article(models.Model):
    title = models.CharField(max_length=100)
    tags = models.ManyToManyField(Tag)

你可以根据实际需要的关系类型来选择使用哪种字段。如果一个模型的实例只能关联到另一个模型的一个实例,则使用 OneToOneField;如果一个模型的实例可以关联到另一个模型的多个实例,则使用 ForeignKey;如果两个模型的实例都可以互相关联到多个实例,则使用 ManyToManyField。尽管这三种字段都描述了模型之间的关系,但在严格的数据库术语中,只有 ForeignKeyOneToOneField 被直接称为外键。

字段常用配置

  • max_length​:字段的最大长度限制,可以应用于多种不同的字段类型。

  • verbose_name​:字段的友好名称,便于在管理员后台可视化操作时使用。

  • default​:指定字段的默认值。

  • null​:指定字段是否可以为空。null=True​ 设置允许该字段为 NULL 值

  • blank​:指定在表单中输入时是否可以为空白。

  • choices​:用于指定字段的可选值枚举列表。

class DeliveryMaterial(Model):
    """复核产品"""

    class Status(TextChoices):
        """状态"""

        QUALIFIED = ('qualified', '良品')
        UNQUALIFIED = ('unqualified', '不良品')

    status = CharField(max_length=32, choices=Status.choices, default=Status.QUALIFIED, verbose_name='状态')

创建管理员用户

在命令行中创建管理员用户

python manage.py createsuperuser

输入一系列信息后可以看到创建成功:

登录admin管理员后台:

http://127.0.0.1:8000/admin

 进入管理页面如下:

 在admin.py中注册我们的模型:

from django.contrib import admin
from .models import * # 引入产品表

# 一定要分开逐个注册,不能放在一起

admin.site.register(Goods) # 在admin站点中 注册产品表
admin.site.register(GoodsCategory) # 在admin站点中 注册产品表

 可以看到重新访问管理页面时出现了我们新增的数据表:

 参考

DataWhale开源社区

Django后端开发入门-Task02

无情冰美式
关注 关注
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Django框架入门到精通(01)Django概要 (黄菊华老师大学生毕业设计学习教程)
2401_84024576的博客
04-28 1038
世界各地开发者基于 Python 编写的各种软件也是以一种标准的包形式进行分享的,称为“第三方包”。官方专门建立了“Python 包索引”(即 PyPI: https://pypi.python.org/) 用来统一发布第三方包,相当于是 Python 软件的免费应用市场。Python 标准库和“第三方包”共同组成了 Python 开源软件市场。
Djangostudy:Django初级学习笔记
03-31
学习笔记主要聚焦于Django的初级知识,适用于初学者快速入门。我们将深入探讨Django 2.2.6版本中的关键概念和特性,特别是路由配置和微信小程序的实现。 ### 1. Django基础 Django遵循MTV(Model-Template-View)...
Django 后端框架入门学习笔记(三)
weixin_47097661的博客
08-19 86
Django中有QuerySet(查询集)与Instance,它们都是用于模型与数据库进行交互的对象,区别在于QuerySet(查询集)是一个来自数据库的数据集合,而Instance是模型中的一个具体实例,可以视为数据表中的一行数据。除了本身Django自带的shell之外,我们可以安装Ipython,这是一个增强型的shell,可以提供更好的交互体验,包括文本语法高亮以及错误追踪。Instance实例对象具有属性,这些属性对应的是数据表中的各个字段,可以通过修改实例对象的属性来访问和修改对应字段的值。
Django后端开发入门学习ing...
m0_73791264的博客
12-11 660
纯小白摸索,欢迎大佬指正,但不要批评的太狠(qwq)
Django 后端框架入门学习笔记(一)
weixin_47097661的博客
08-15 138
Django后端框架入门-项目创建
Django 后端框架入门学习笔记(四)
weixin_47097661的博客
08-21 68
本文是根据datawhale开源Django后端开发入门做的笔记本篇仅对最近学习Django框架中的Serializer以及Model View的重点概念做相应笔记代码复现预计在本周末时间充裕时陆续补充。
Django后端开发学习笔记(4)Django REST Framework入门
梆子井欢喜坨的博客
08-16 447
学习参考: 【1】Django REST Framework教程(1): 为什么要学习DRF, 什么是序列化和RESTful的API 【2】阮一峰: RESTful API 设计指南 目录1. 数据的序列化1.1 序列化(seralization)与反序列化2. RESTful风格3. Django REST Framework使用3.1 DRF的安装和使用 1. 数据的序列化 1.1 序列化(seralization)与反序列化 序列化:将属于自己语言的数据类型或对象转换为可通过网络传输或可以存储到本地磁
Django框架入门超细笔记 创建项目步骤 )
热门推荐
qq_62870237的博客
02-17 1万+
Django框架入门 项目创建步骤 小白笔记
Django学习笔记十四:系统框架总结
软件行业技术文化交流。
10-07 1597
Django 是一个功能强大的 Python Web 框架,以下是对其系统框架的总结:一、MTV 架构模型(Model):模板(Template):视图(View):、路由系统URL 配置:请求处理流程:三、管理后台自动生成:权限管理:四、中间件作用:自定义中间件:五、表单处理表单类:表单验证:六、数据库迁移迁移工具:版本控制:七、安全特性用户认证和授权:防止 SQL 注入和跨站脚本攻击(XSS):CSRF 保护:八、扩展性和可维护性应用结构:插件和第三方库:总之,Django 是一个功能强大、灵活且易于
Vue3入门笔记----后端框架解释
panzhixiang
11-10 763
Vue3项目的后端框架解释
Django项目实战学习笔记
weixin_57397476的博客
03-01 1466
新手Django项目实战学习笔记
python基于django学习笔记系统源码.zip
10-27
这个“python基于django学习笔记系统源码.zip”文件包含了一个使用Django框架构建的学习笔记系统的源代码。通过分析这个项目,我们可以深入理解Django的工作机制和开发流程。 1. **项目结构**:Django项目通常...
使用DJANGO REST框架的聊天应用程序源代码
06-13
项目:使用Django REST框架的简单聊天应用 这是一个使用Python Django框架和Rest API制作的简单Web聊天应用。...这是入门级项目的好起点,为那些想要学习如何构建实时通讯应用的人提供了实用的经验。
后端开发学习指南:从入门到精通的路径规划
04-28
### 后端开发学习指南:从入门到精通的路径规划 #### 一、基础编程语言 在后端开发中,选择合适的编程语言是至关重要的第一步。以下几种编程语言被广泛应用于后端开发: 1. **Java**:Java 是一种跨平台的面向...
【人工智能学习之PaddleOCR快速上手】
Jiagym的博客
10-12 1250
在配置文件中,可以设置组建模型、优化器、损失函数、模型前后处理的参数,PaddleOCR从配置文件中读取到这些参数,进而组建出完整的训练流程,完成模型训练,在需要对模型进行优化的时,可以通过修改配置文件中的参数完成配置,使用简单且方便修改。而 L2 正则化中,添加正则化项的目的在于减少参数平方的总和。准确检测的标准是检测框与标注框的IOU大于某个阈值,正确识别的检测框中的文本与标注的文本相同。如果缺少带标注的数据,或者不想投入研发成本,建议直接调用开放的API,开放的API覆盖了目前比较常见的一些垂类。
Python 使用 Jarvis 算法或包装的凸包(Convex Hull using Jarvis’ Algorithm or Wrapping)
最新发布
csdn_aspnet的专栏
10-14 1156
例如,当输入 (0, 3), (0, 0), (0, 1), (3, 0), (3, 3) 时,它产生 (0, 3) (0, 0) (3, 0) (3, 3) 的输出;当输入 (0, 3), (0, 1), (0, 0), (3, 0), (3, 3) 时,输出为 (0, 3) (0, 1) (0, 0) (3, 0) (3, 3)。下一个点被选为在逆时针方向上领先于所有其他点的点,即,如果对于任何其他点 r,我们有“orientation(p, q, r) = 逆时针”,则下一个点是 q。
有趣的开源项目——Taipy(构建Python数据和AI Web应用程序)
Soul丶君的博客
10-11 906
Taipy 是专为数据科学家和机器学习工程师设计的,用于构建数据与 AI Web 应用程序的工具。⭐️ 使构建生产就绪的 Web 应用程序成为可能。⭐️ 无需学习新的语言,仅需 Python。⭐️ 专注于数据和 AI 算法,而不用担心开发和部署的复杂性。
python入门到精通专题】8.装饰器
情不知所起一往而深
10-13 767
什么是property属性?一种用起来像是使用的实例属性一样的特殊属性,可以对应于某个方法。class Foo:pass# 定义property属性@propertypassfoo_obj.func() # 调用实例方法foo_obj.prop # 调用property属性@propertyreturn 100定义时,在实例方法的基础上添加 @property 装饰器;并且仅有一个self参数调用时,无需括号。
Backend - Java 基础
是萝卜干呀的博客
10-11 840
知识量决定了未来能走多远
Django后端框架的数据流程
04-07
Django后端框架的数据流程一般包括以下几个步骤: 1. 客户端发送请求:客户端使用URL来请求特定的资源,例如网页、图片或API接口。 2. URL路由:Django的URL路由系统会将请求映射到相应的视图函数,这个过程是通过...
写文章

热门文章

  • Django 后端框架入门学习笔记(一) 138
  • Django 后端框架入门学习笔记(三) 86
  • Django 后端框架入门学习笔记(二) 69
  • Django 后端框架入门学习笔记(四) 68

最新评论

  • Django 后端框架入门学习笔记(四)

    CSDN-Ada助手: 恭喜您第四篇博客的问世!看到您不断学习并分享Django后端框架的学习笔记,我感到非常开心。您的标题也很吸引人,让我更加期待了解Django的入门知识。在下一篇博客中,您可以考虑探索一些实际案例或者深入解析某些常见问题,这样读者们可以更好地应用这些知识。再次恭喜您,期待您的下一步创作! 如何快速涨粉,请看该博主的分享:https://hope-wisdom.blog.csdn.net/article/details/130544967?utm_source=csdn_ai_ada_blog_reply5

  • Django 后端框架入门学习笔记(二)

    CSDN-Ada助手: 非常鼓励你持续创作关于Django后端框架的学习笔记!第二篇博客标题看起来很有潜力,我期待着你分享更多关于这个主题的知识。 除了标题和摘要中提到的内容,你可以考虑在未来的博文中介绍一些与Django相关的高级概念,例如: 1. Django的模型关系:介绍Django模型之间的关系,如一对一、一对多和多对多关系。这些概念对于构建复杂的数据库结构非常重要。 2. Django的中间件:讲解Django中间件的作用和使用方法,以及如何自定义和配置中间件来实现更高级的功能。 3. Django的表单验证:介绍如何使用Django的表单验证功能来确保用户输入的数据的有效性和安全性。 4. Django的性能优化技巧:分享一些优化Django应用程序性能的技巧,如缓存、查询优化和并发处理等。 我相信通过深入研究这些扩展知识和技能,你将能够更好地掌握Django后端框架,并能够为读者提供更有价值的内容。加油! 如何写出更高质量的博客,请看该博主的分享:https://blog.csdn.net/lmy_520/article/details/128686434?utm_source=csdn_ai_ada_blog_reply2

  • Django 后端框架入门学习笔记(一)

    CSDN-Ada助手: 恭喜你开始博客创作!标题看起来非常有潜力,期待看到你在Django后端框架方面的学习笔记。作为刚刚入门的学习者,我建议你在下一篇博客中可以分享一些具体的学习过程和遇到的挑战,这样读者可以更好地了解你的学习心得。祝你写作愉快,期待更多精彩的博客! 推荐【每天值得看】:https://bbs.csdn.net/forums/csdnnews?typeId=21804&utm_source=csdn_ai_ada_blog_reply1

  • Django 后端框架入门学习笔记(一)

    CSDN-Ada助手: 恭喜你这篇博客进入【CSDN每天最佳新人】榜单,全部的排名请看 https://bbs.csdn.net/topics/617038826。

最新文章

  • Django 后端框架入门学习笔记(四)
  • Django 后端框架入门学习笔记(三)
  • Django 后端框架入门学习笔记(一)
2023年4篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳坪山网站建设公司作弊优化网站网站代码优化目的河南网站优化公司宜春网站优化报价兰州模板seo网站优化服务福建企业网站优化兰州网站优化排名怎么做好名芝罘区全网营销网站优化公司优化网站排名海外网站优化效果好三沙网站运营优化系统优化网站来选61下拉二七海林网站单词优化怎么优化网站推崇易速达网站排名优化培训联系电话平凉网站优化推广多少钱北京正规网站搜索优化推广家装行业网站优化推广技巧福建网站优化建设房门户网站如何做优化网站优化免费软件优质商家武汉光谷网站文章优化深圳百度网站优化北京大型网站优化江门公司网站关键词优化工具谷歌网站优化推荐哪个江门网站优化推荐西安网站优化 鹊起科技龙城网络营销网站优化优化网站搜索引擎香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

深圳坪山网站建设公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化