0904自我总结 django模型中有外键关系的表删除相关设置 一.一对一 例如有Author、AuthorDetail两表 author = models.OneToOneField(to='Author...', db_constraint=False, on_delete=models.DO_NOTHING, ) 1)关系字段放在Book表中(多的一方...models.DO_NOTHING为删除级联关系, models.CASCAD为级联关系,'SET_NULL'置空,SET_DEFAULT设为默认值 两者区别 models.SET关联表内容删了,关联的相关内容不会删除...关系字段放在任意一方都可以:出版社删除或书删除彼此不影响,但关系表一定级联删除 2)正向找 外键字段,反向找 外键字段related_name 3)db_constraint断开表关联,on_delete不存在(不设置...,本质在第三张表中设置,且一定是级联)
数据库操作:ORM:描述Django ORM的基本使用,包括定义模型、执行CRUD操作、查询过滤等。数据库迁移:解释Django的数据库迁移机制,演示如何创建、应用、回滚迁移。...视图与模板:视图函数与类视图:对比视图函数与类视图的优缺点,给出使用场景示例。模板语言:列举Django模板语言的主要功能(如循环、条件、模板继承、模板标签等),并编写简单示例。...表单与验证:表单类:阐述Django表单类的定义、字段类型、验证规则、绑定数据、清洗数据等过程。自定义验证:演示如何为表单字段添加自定义验证方法,处理复杂验证逻辑。...用户认证与授权:认证系统:描述Django自带的认证系统,包括用户模型、登录/登出、密码管理等。权限与组:解释Django的权限系统,演示如何为用户分配权限、创建用户组,以及在视图中进行权限检查。...规避:使用Django提供的防护措施(如QuerySet查询、模板自动转义、CSRF middleware),编写安全的代码。四、代码示例1.
目录 项目源码 安装 支持的 Django 版本/前提条件。 用法 模型变化 使用 mixins 更改模型 在 db 层自动化复合外键: 在哪里设置租户?...支持的 API Python/Django 支持分布式多租户数据库,如 Postgres+Citus。...安装 pip install --no-cache-dir django_multitenant 支持的 Django 版本/前提条件。...Python Django 3.X 2.2 3.X 3.2 3.X 4.0 用法 为了使用这个库,您可以使用 Mixins 或让您的模型从我们的自定义模型类继承。...: 使用 mixins 更改模型 在您要使用库的任何文件中,只需: 所有模型都应使用 TenantModelMixin 和 django models.Model 或您的客户模型类 Ex: class
TestFiled DateFiled AutoFiled(primary_key=True)自增,不指定主键会自动创建 在使用的时候何以设置DateField.auto_now每次自动保存对象的时候自动设置改字段为当前时间...,设置DateField.auto_now_add当对象第一次被创建时自动设置当前时间 DateTimeFiled >> https://docs.djangoproject.com... 模型类上的管理器(class.objects) queryset (惰性,,没有操作数据库)表示数据库中对象的集合,等同于select 语句 query 获取mysql 语句 first()...) 根据给定的条件获取过滤后的queryset,多个条件用','连接 exclude(**kwargs) 作用和filter相反,去除不符合条件的对象 多条件的or连接 from django.db.models...,数据大的时候不用步长 ***切片后不再支持附加条件与排序 *多字段排序有什么用?
' 4.将session信息存储到redis中 需要安装扩展: pip install django-redis 然后再配置中进行设置 # 设置Django框架的缓存位置(如果不做设置,缓存默认是服务器内存...b) Django中的模板变量不能直接进行算术运算。 13.2.2模板控制语句 13.2.2.1条件判断 a) Django模板在进行条件判断时,比较操作符两边必须有空格。...all 无 查询模型类对应表格中的所有数据 QuerySet(查询集) get 查询条件 查询满足条件一条且只能有一条数据 模型类对象,查不到会报错DoesNotExist filter 查询条件 返回满足条件的所有数据...= 值 可以写多个查询条件,默认是且的关系 F对象: 用于查询时字段之间的比较 from django.db.models import F Q对象: 用于查询时条件之间的逻辑关系 from django.db.models...使用 1.在配置文件中设置配置项MEDIA_ROOT='上传文件的保存目录' 2.定义模型类时,图片字段的类型使用 ImageField 3.迁移生成表并在admin.py注册模型类,直接登录Admin
〜 非操作 语法 from django.db.models import Q Q(条件1)|Q(条件2) # 条件1成立或条件2成立 Q(条件1)&Q(条件2) # 条件1和条件2同时成立 Q(...方法进行注册,如: from django.contrib import admin admin.site.register(自定义模型类) 如:在 bookstore/admin.py 添加如下代码对...list_filter 设置激活 Admin 修改列表页面右侧栏中的过滤器 search_fields 设置启用 Admin 更改列表页面上的搜索框。...list_editable 设置为模型上的字段名称列表,这将允许在更改列表页面上进行编辑。...(设置完成后需要立马更新同步数据库) 2. verbose_name = '单数名' - 给模型对象的一个易于理解的名称(单数),用于显示在/admin管理界面中
何为软删除 当你想对数据进行删除的时候,如果使用物理删除,那么数据真的消失了。使用软删除,可以让数据保留,但是不会被真的删除。只是在字段上设置了一个值,表示数据已经被删除。...需要解决的问题 DRF 暴露DELETE方法一旦被执行,就需要操作软删除,把is_deleted字段设置为True。...同样的,DRF对外操作的其他接口,如查询,修改操作,就不允许找到已经软删除的数据。 自带的Admin 既然是超级管理后台,那么就允许操作任何数据,包括已经软删除的,而不是列表找不到软删除的数据。...简而言之: drf找不到删除的数据,admin需要全部数据 drf和admin删除数据都是软删除 解决方案 DRF Django Manager 赋予了 Django的模型(Model)中操作数据库的能力...也就是如:Book.objects.all()中的objects。有没有想过它到底是什么? 显然,默认的模型Manager并不能解决我们的问题,所以我们需要自定义模型的Manager。
Django ORM框架的功能: 建立模型类和表之间的对应关系,允许我们通过面向对象的方式来操作数据库。 根据设计的模型类生成数据库中的表格。 通过方便的配置就可以进行数据库的切换。...与之关联的值设置为可执行对象的返回值,设置:models.SET(可执行对象) def...表达式可以是简单的值、对模型(或任何关联模型)上的字段的引用或者聚合表达式(平均值、总和等)。 ...每个字典表示一个对象,键对应于模型对象的属性名称。...table1.objects.all().update(num=F("num")+10) Q构建搜索条件, Q的作用:Q是用来做条件查询的 #导入Q from django.db.models import
12、select、poll、epoll 模型的区别? 13、简述 进程、线程、协程的区别 以及应用场景? 14、GIL锁是什么鬼? 15、Python中如何使用线程池和进程池?...35、filter和exclude的区别? 36、列举django orm中三种能写sql语句的方法。 37、django orm 中如何设置读写分离? 38、F和Q的作用?...48、django缓存如何设置? 49、django的缓存能使用redis吗?如果可以的话,如何配置? 50、django路由系统中name的作用?...Column(String(64), unique=True) ctime = Column(DateTime, default=datetime.now()) 87、SQLAchemy中如何为表设置引擎和字符编码...101、git如何实现v1.0 、v2.0 等版本的管理? 102、什么是gitlab? 103、github和gitlab的区别? 104、如何为github上牛逼的开源项目贡献代码?
35、filter和exclude的区别? 36、列举django orm中三种能写sql语句的方法。 37、django orm 中如何设置读写分离? 38、F和Q的作用?...48、django缓存如何设置? 49、django的缓存能使用redis吗?如果可以的话,如何配置? 50、django路由系统中name的作用?...Column(String(64), unique=True) ctime = Column(DateTime, default=datetime.now()) 87、SQLAchemy中如何为表设置引擎和字符编码...101、git如何实现v1.0 、v2.0 等版本的管理? 102、什么是gitlab? 103、github和gitlab的区别? 104、如何为github上牛逼的开源项目贡献代码?...153、是否有关注什么技术类的公众号? 154、最近在研究什么新技术? 155、是否了解过领域驱动模型?
简介 Django 中模型是真实数据的简单明确的描述,它包含了储存的数据所必要的字段和行为,在创建模型前需要先配置好数据库。...每个模型有一些类变量,它们都表示模型里的一个数据库字段。 每个字段都是 Field 类的实例,如 CharField 对应数据库中的字符串字段。...(迁移是 Django 对于模型定义即你的数据库结构的变化的储存形式)。...image.png 查询数据 Django 提供了多种方式来查询出数据库记录,如查询上面 Question 模型对应全部数据,某个id的数据以及通过多条件过滤得到所需要的数据。...response2 = Question.objects.get(id=1) # 相当于SQL中的WHERE id=1,可设置条件过滤 response3 = Question.objects.filter
查看当前目录下的虚拟环境 workon 设置Django的版本 pip install django==1.11.11 # 虚拟环境的指令...) # 关联过滤查询 # 由多模型类条件查询一模型类数据: # 语法如下: # 关联模型类名小写__属性名__条件运算符 = 值 # 注意:如果没有...语法如下: # 一模型类关联属性名__一模型类属性名__条件运算符=值 # 注意:如果没有"__运算符"部分,表示等于 # 查询书名为天龙八部中的所欲英雄...filter():返回满足条件的数据。 exclude():返回满足条件之外的数据。...的模型进行数据库操作的接口,Django应用的每个模型类都拥有 至少一个管理器。
12、select、poll、epoll 模型的区别? 13、简述 进程、线程、协程的区别 以及应用场景? 14、GIL锁是什么鬼? 15、Python中如何使用线程池和进程池?...35、filter和exclude的区别? 36、列举django orm中三种能写sql语句的方法。 37、django orm 中如何设置读写分离?...48、django缓存如何设置? 49、django的缓存能使用redis吗?如果可以的话,如何配置? 50、django路由系统中name的作用?...Column(String(64), unique=True) ctime = Column(DateTime, default=datetime.now()) 87、SQLAchemy中如何为表设置引擎和字符编码...101、git如何实现v1.0 、v2.0 等版本的管理? 102、什么是gitlab? 103、github和gitlab的区别? 104、如何为github上牛逼的开源项目贡献代码?
然后,我们将在应用程序前设置Apache,以便在将需要应用程序逻辑的请求传递给Django应用程序之前,它可以直接处理客户端请求。...-mod-wsgi 相反,如果您使用Django和Python 3,则需要一个替代的Apache模块和pip包。...在文件的底部,我们将添加一行来配置此目录。Django使用该STATIC_ROOT设置来确定这些文件应该到达的目录。...现在,我们可以调整防火墙设置以允许流量到我们的Django开发服务器,我们将在端口8000上运行。如果您遵循先决条件中的初始服务器设置指南,则应该启用UFW防火墙。...自签名证书提供了相同类型的加密,但没有域名验证公告。关于自签名证书,你可以参考为Apache创建自签名SSL证书和如何为Nginx创建自签名SSL证书这两篇文章。
Github v4 版外部 API 只使用 GraphQL,可见 GraphQL 是一个明显的趋势,值得我们去学习和使用。今天就分享一下如何为 Django 配置 GraphQL API。...graphene-django 就是为 Django 提供 GraphQL API 的三方库。...pip install django pip install graphene-django 2、生成 Django 初始代码,编写 models.py,编写 GraphQL 的模式。...这就是 GraphQL 的接口调试界面,左边输入查询条件,右边返回数据。...总结 GraphQL 非常强大,并且可以快速集成 Django 模型,从而可以非常方便的将你的应用 api 转换为 GraphQL 风格。如果你想了解更多用法,请阅读 Graphene 官方文档。
模型类-字段选项: 创建列的额外信息 primary_key:设置为True,则为主键,此数据库表不会创建id字段 blank:设置为True,则字段可以为空,控制的是Admin后台的提交,和mysql...verbose_name:设置此字段在admin界面上的显示名称,可以中文化admin界面 好习惯:字段选项【添加或更改】均要执行 模型类-Meta内部类 使用Meta类来给**模型(其实就是表的属性)...如改表名: from django.db import models class 模型类名(models.Model): 字段名 = models.字段类型(字段选项) class Meta...verbose_name_plural = '复数名' Django对于数据库操作是惰性的,尽量不对数据库进行积极的修改,如设置的default值将不参与表的字段生成,只会参与实际插值。...) 语法:MyModel.objects.filter(属性1=值1,属性2=值2)(,默认是AND查询) 等价于 条件查询 返回值:QuerySet,存放模型实例 exclude(条件
=True) 如果Django看到你显式地设置了Field.primary_key, 就不会自动添加 id 列 每个模型只能有一个字段指定primary_key=True (无论是显式声明还是自动添加)...(如列表或元组),用来给字段提供选择项,如果设置了 choices, 默认的表单将是一个选择框,选择框的选择就是choices中的选项 class Test(model.Model): YEAR_IN_SCHOOL_CHOICES...,可以是一个值或者调用对象 字段选项——primary_key 如果为True,那么这个字段就是模型的主键 字段选项——unique 如果该值设置为True,这个字段的值在整张表中必须是唯一的 模型meta...选项 使用内部的class Meta 定义模型的元数据,例如: from django.db import models class User(models.Model): username...如果有多条记录满足get() 的查询条件,Django 也将报错。这种情况将引发 MultipleObjectsReturned,它同样是模型类自身的一个属性。
领取专属 10元无门槛券
手把手带您无忧上云