首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Django中基表的创建、字段属性简介、脏数据概念、子序列化

如两张表建立了一对一字段,在A表,那么先往B表写数据就更合理。...更合理) """ Django orm中外字段属性详解 在建表之前我们对外字段属性进行了解: 1)related_name在外中设置反向查询的字段名:正向找字段名,反向找related_name...SET_DEFAULT:假设A表依赖B表,B记录删除,A表的字段重置为default属性设置的值,所以必须配合default属性使用。...a.事物A按一定的条件数据库中读取某些数据记录后,事物B插入了一些记录,当B再次按照相同条件读取数据时,发现多了一些记录。(也叫做幻影读)。...如果涉及通过进行跨表查询,然后再将查询数据反序列化前台就需要用到子序列化,比如下面的例子:我们查询出版社信息的时候连带将book表中的该出版社所出版过的书名一并查出来。

4.3K30

Django ORM 多表操作

目录 Django ORM 多表操作 表模型 表关系 创建模型 逆向表模型 插入数据 ORM 添加数据(添加) 一对多( ForeignKey) 一对一 (OneToOneFeild) 多对多...6、若有模型类存在外,创建数据时,要先创建关联的模型类的数据,不然创建包含的模型类的数据时,的关联模型类的数据会找不到 逆向表模型 插入数据 ps:插入几条数据方便操作 ORM...添加数据(添加) 一对多( ForeignKey) 方式一: 传对象的形式,返回值的数据类型是对象,书籍对象 步骤: 获取出版社对象 给书籍的出版社属性 pulish 传出版社对象 '''test.py...(多的表)中,MySQL 中显示的字段名是:属性名_id。...,去该表的角度查另外的表,就是正向 反向:从没有表去查另外相关联的表,就是反向 口诀: 正向查询按字段 反向查询按表名小写 注意: 正向:属性名 反向:小写类名加 _set 反向查询的时候查询的对象可能有多个的情况加

1.7K20
您找到你想要的搜索结果了吗?
是的
没有找到

Django MVC概述和开发流程

控制器(Controller) 负责用户获取输入,是应用程序中处理用户交互的部分,通常控制器负责视图读取数据,控制用户输入,并向模型发送数据。...max_length=20) age = models.IntegerField() gender = models.BooleanField(default=True) # ...数据库中表的命名为应用命_模型类名,而且在模型类中添加了则会生成命名为模型类名_id的字段。...= '清华大学' sc2.addr = '北京' sc2.save() 查找学校: sc3 = SchoolInfo.objects.get(name='北京大学') # 可以直接通过修改这个实例的属性进行数据库的...: st1 = StudentInfo() st1.name = '张三' st1.age = 18 st1.gender = True # 直接赋值模型类对应的实例对象 st1.school =

1.7K10

DjangoDjango ORM 学习笔记

语句打交道,只需简单的操作对象的属性和方法。...关联查询就是在查询当前实例的同时,把其关联的实例数据也一块取出来。在下图中 orm_blog 通过一个和 orm_author 关联。...关联大体上可以分为两种: 只有一个关联实例: 关联中包含的表、OneToOneField,例如下图中的 orm_blog 只与一个 orm_author 的实例关联 有多个关联实例:关联中不含的表...、ManyToManyField,例如下图中的 orm_author 就与多个 orm_blog 实例关联 因此 Django ORM 中的关联查询也分两中 select_related(单关联实例)...`id` ASC LIMIT 1 select_related 会沿着递归查询,例如上图中取表 1 的实例时,会沿着将表 3 的数据一块取出来。

2.2K20

1.4 Django基础篇--数据库模型设计

下面我们分析一下数据库该如何设计? 1.4.1 数据库设计 1.先从分类说起,从下图中我们知道一个博客中对文章有很多分类,因此分类需要作为单独的数据表,里面需要存储分类的id和名称。...Category表通过与Acticle表相连,而Tag表与Article之间很特殊。大家会发现很奇怪,为什么设计了三个表,可是上图中却多出了一个Article_has_Tag表。这是为什么呢?...其实这在数据库设计中很常见,描述两个表多对多的关系时,会生成一个中间表,将多对多的关系转化为两个表和中间表一对多的关系,这样可以使用将表联系起来。...author表示文章作者,大家会发现我们使用了,这是因为User是Django内置的数据模型,django.contrib.auth.models中导入的,专门用来负责用户信息的处理,本质上User...一个作者可以拥有很多文章,而一篇文章只能有一个作者,是一对多的关系,因此使用和User数据模型 建立联系。

1.2K30

2018年10月8日django查看版本命令,python2&3中print区别,iterable报错,SSH,pycharmubuntu颜色设置

打印的是hhh ggg,除非,这个括号里只有一个字符串,比如('hhh'),那么他就不是元组,print ('hhh')在py2和py3中都是打印hhh,毕竟('hhh')=='hhh',所以py2才会他为字符串而不是元组...———————————————————————————————————————————————————————— 通过操作其他表的数据: https://blog.csdn.net/jackieleewelas...通过使用SSH,你可以把所有传输的数据进行加密,而且也能够防止DNS欺骗和IP欺骗。使用SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。...SSH有很多功能,它既可以代替Telnet,又可以为FTP、PoP、甚至为PPP提供一个安全的"通道"SSH最初是UNIX系统上的一个程序,后来又迅速扩展其他操作平台。...教训: 找不到json的dumps属性

70730

Django 1.10中文文档-第一个应用Part7-自定义管理站点

一是就像刚刚Question一样也将Choice注册admin界面。...在这个表单中,Question字段是一个select选择框,包含了当前数据库中所有的Question实例。Django在admin站点中,自动地将所有的关系展示为一个select框。...请注意图中的绿色加号,它连接到Question模型。每一个包含关系的对象都会有这个绿色加号。点击它,会弹出一个新增Question的表单,类似Question自己的添加表单。...填入相关信息点击保存后,Django自动将该Question保存在数据库,并作为当前Choice的关联对象。通俗讲就是,新建一个Question并作为当前Choice的。...请参考如何重用apps (0%)。 接下来,在刚才创建的templates中创建一个admin目录,将admin/base_site.html模板文件拷贝该目录内。

3.6K60

Django-Multitenant,分布式多租户数据库项目实战(PythonDjango+Postgres+Citus)

目录 项目源码 安装 支持的 Django 版本/前提条件。 用法 模型变化 使用 mixins 更改模型 在 db 层自动化复合: 在哪里设置租户?...通过将租户上下文添加到您的查询来实现轻松横向扩展,使数据库(例如 Citus)能够有效地将查询路由正确的数据库节点。...Python Django 3.X 2.2 3.X 3.2 3.X 4.0 用法 为了使用这个库,您可以使用 Mixins 或让您的模型我们的自定义模型类继承。...: 在 db 层自动化复合: 使用 TenantForeignKey 在租户相关模型之间创建将自动将 tenant_id 添加到引用查询(例如 product.purchases)和连接查询(例如...如果要确保在 db 层创建复合(带有 tenant_id),则应将 settings.py 中的数据库 ENGINE 更改为 django_multitenant.backends.postgresql

1.9K10

Django 多对多字段的更新和插入数据实例

表的普通字段 一对多字段 多对多字段 插入数据 #插入数据 def add(request): G_title=request.POST.get('title')#-------值为:python...authors #-------多对多 book_obj=Book.objects.create(title=G_title,publish=publish_obj)#添加普通和一对多的值...多对多字段中删除值(删除多对多关系): ?...,这两个定义了两个模型之间是如何关联一起的 所以当创建多对多关系模型的时候提倡使用through参数去指定并创建中间模型,这样比较方便我们进行字段的扩展 那么此时我们又该如何添加和删除多对多关系呢...多对多字段的更新和插入数据实例就是小编分享给大家的全部内容了,希望能给大家一个参考。

4.2K30

Django学习-第七讲:django 中的常用字段、字段属性和表关系、操作

BigAutoField 64位的整形,类似于AutoField,只不过是产生的数据的范围是1-9223372036854775807。 3....第一个参数是引用的是哪个模型,第二个参数是在使用引用的模型数据被删除了,这个字段该如何处理,比如有CASCADE、SET_NULL等。这里以一个实际案例来说明。...因此在底层,Django为Article表添加了一个属性名_id的字段(比如author的字段名称是author_id),这个字段是一个,记录着对应的作者的主键。...如果对应的那条数据被删除了,那么这条数据也会被删除。 2.PROTECT:受保护。即只要这条数据引用了的那条数据,那么就不能删除外的那条数据。 3.SET_NULL:设置为空。...如果的那条数据被删除了,那么本条数据上就将这个字段设置为默认值。如果设置这个选项,前提是要指定这个字段一个默认值。 5.SET():如果的那条数据被删除了。

3.9K30

【愚公系列】2022年01月 Python教学课程 40-Django框架之模型属性详解

可通过db_table指明数据库表名。 2) 关于主键 django会为表创建自动增长的主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后django不会再创建自动增长的主键列。...,blank是表单验证范畴的 6) 在设置时,需要通过on_delete选项指明主表删除数据时,对于引用表数据如何处理,在django.db.models中包含了可选常量: CASCADE...级联,删除主表数据时连通一起删除外表中数据 PROTECT保护,通过抛出ProtectedError异常,来阻止删除主表中被应用的数据 SET_NULL设置为NULL,仅在该字段null=True...异常 二、模型类迁移 将模型类同步数据库中。...1)生成迁移文件 python manage.py makemigrations 2)同步数据库中 python manage.py migrate 总结 django开发模型类和字段最好在代码里定义在迁移同步数据

1.4K20

django admin中配置搜索域是一个时的处理方法

python 2.7.11 django 1.8.4 错误内容:related Field has invalid lookup: icontains 我原来默认认为在处理搜索的时候,django...会自动将该的行数据以str()化之后进行搜索,但其实并不是这样的,如果将加入搜索域中,需要明确写出来。...这个是我网上查到的解决方案,测试可用,如下: models.py 文件 # coding:utf8 from django.db import models class Book(models.Model...不应该只是一个model,而该是另一个表的明确的一个字段。 所以我们需要指定特定的字段 “本表字段__所在表需查询字段”。...补充知识:Django的model中使用,但在页面上显示的是xxx_object?

3.8K20

Django-官网查询部分翻译(1.11版本文档)-QuerySet-字段查找-06

目录 Making queries 进行查询 创建一个对象(一条数据记录) 保存修改的表对象 保存字段或多对多字段(ForeignKey or ManyToManyField fields) Retrieving...Blog', tagline='All the latest Beatles news.') b.save() 这段代码背后其实是一条数据插入语句,django 并不会直接执行这个语句,直到你调用了...,下面的语句将修改他的 name 属性值,然后更新它数据库中去 b5.name = 'New name' b5.save() # 代码运行这里才会进行数据库操作,真正地更新到数据库!...保存字段或多对多字段(ForeignKey or ManyToManyField fields) 字段 ForeignKey 更新一个字段的写法和普通字段的完全一致,只需要将正确类型的对象分配给相关字段即可...--> 推测是 遍历、取值,翻译成取值好像更合适一点) alias 别名 特别点 保存字段那里,可以直接给对象赋值一个对象(blog 对象 --> blog 属性) cache

2.9K20

Django JSONField SQL注入漏洞(CVE-2019-14234)分析与影响

phith0n').all() 非常简单,和我们正常的queryset完全一样,只不过这里的detail是一个JSONField,而下划线后的内容代表着JSON中的键名,而不再是常规queryset时表示的“...他们的区别是:transform表示“如何去找关联的字段”,lookup表示“这个字段如何与后面的值进行比对”。...正常情况下,transform一般用来在通过连接两个表,比如.filter(author__username='phith0n')可以表示在author连接的用户表中,找到username字段;...那么,在JSONField中,lookup实际上是没有变的,但是transform“在外表中查找”,变成了“在JSON对象中查找”,所以自然需要重写get_transform函数。...就是如果你能控制filter方法的参数名,就能通过的方式来获取其他表的一些敏感信息。

2K32

django 1.8 官方文档翻译: 2-3-1 模型实例参考

下面的示例演示如何保存数据库中加载进来的字段原始值: @classmethod def from_db(cls, db, field_names, values): # default implementation...例如,如果重新加载的实例有一个另外一个模型Author,那么如果 obj.author_id !...注意,只有本模型的字段会数据库重新加载。其它依赖数据库的值不会重新加载,例如聚合的结果。 重新加载使用的数据库与实例加载时使用的数据库相同,如果实例不是数据库加载的则使用默认的数据库。...数据库保存的不是datetime 对象,所以该字段的值必须转换成ISO兼容的日期字符串才能插入数据库中。 4. 插入数据数据库中。 将预处理过、准备好的数据组织成一个SQL 语句用于插入数据库。...Django 如何知道是UPDATE 还是INSERT 你可能已经注意Django 数据库对象使用同一个save() 方法来创建和改变对象。

1.9K10

django 1.8 官方文档翻译: 3-4-3 使用基于类的视图处理表单

使用基于类的视图处理表单 表单的处理通常有3 个步骤: 初始的的GET (空白或预填充的表单) 带有非法数据的POST(通常重新显示表单和错误信息) 带有合法数据的POST(处理数据并重定向) 你自己实现这些功能经常导致许多重复的样本代码...(参见在视图中使用表单)。...Changed in Django 1.8: 省略fields 属性在以前是允许的,但是导致表单带有模型的所有字段。...首先,向模型添加关联: #models.py from django.contrib.auth.models import User from django.db import models class...AJAX 示例 下面是一个简单的实例,展示你可以如何实现一个表单,使它可以同时为AJAX 请求和‘普通的’表单POST 工作: from django.http import JsonResponse

1.8K20

Django 2.1.7 视图 - HttpReqeust对象、QueryDict对象

关于视图的篇章 Django 2.1.7 视图 Django 2.1.7 MVT模型示例 - 查询数据,返回渲染模板数据 Django 2.1.7 视图 - 自定义404错误、500错误 在前面的篇章基本讲述了视图的使用...这个属性是可写的,可以通过修改它来修改访问表单数据使用的编码,接下来对属性的任何访问将使用新的encoding值。 GET:QueryDict类型对象,类似于字典,包含get请求方式的所有参数。...QueryDict对象 定义在django.http.QueryDict HttpRequest对象的属性GET、POST都是QueryDict类型的对象 与python字典不同,QueryDict类型的对象用来处理同一个带有多个值的情况...问:表单form如何提交参数呢? 答:表单控件name属性的值作为,value属性的值为值,构成键值对提交。 如果表单控件没有name属性则不提交。...Django图中获取POST请求的示例代码如下: def addmiddlewareinfo(request): # 1、接收POST请求过来的参数 servername = request.POST.get

1.5K20

Django(ForeignKey)操作以及related_name的作用

之前已经写过一篇关于Django的文章,但是当时并没有介绍如何根据数据的操作,也就是如何通过主表查询子表或者通过子表查询主表的信息 首先我定义了两个模型,一个是老师模型,一个是学生模型,...默认情况下每一个主表的对象都有一个是属性,可以通过它查询所有关于子表的信息,这个属性的名字就是子表的名称小写加上_set,具体这个就是student_set,默认返回的是QuerySet,操作如下...: 在这里也会牵涉另外一个知识点related_name的使用,在models.py使用Foreign定义的时候也可以传入一个参数related_name,操作如下: 执行python...,直接就给定义好名称使用related_name 上面的查询主要是通过主表查询子表的信息 下面说一下如何通过子表查询主表的相关信息,也就是查询一个学生所对应的老师的信息 首先需要先获取一个子表的对象...,那么就可以通过定义时候的那个的字段名获取关于主表的信息了 比如我得到了一个student对象,然后我想要得到这个student对象对应的主表teache中的信息的话,就使用 student.teacher

2K10
领券