Django2.2 数据库的模块model学习笔记
一、前言
为什么选用Django2.2,因为从2019年下半年起Django2.2逐渐成为长期支持版本,官网也有数据,所以当然选用维护时间长的版本
二、models的建立
Django的models也就是你所配置的数据库的表名(Django2.2--mysql连接---https://www.cnblogs.com/cybg/p/11906652.html)
要注意的是每次的class model建立都需要在控制台执行一次迁移文件----python manage.py migrate

2.1 objects.filter()与objects.get()的区别
.相同点:两者均是从数据表中查询满足条件的数据,----并且两者获取的数据类型均为 Queryset
.不同点:get()获取到的是一条数据----因此往往需要添加try语句来防止没有数据等情况
filter()获取到的是多条数据----使用更方便----配合F和操作可以方便的在views层来用for 迭代显示数据
2.2 F与Q运算
.F运算
- 可以获取我们属性的值
- 可以实现一个模型的不同属性的运算操作
- 还可以支持算数运算
.Q运算
- 可以对条件进行封装
- 封装之后,可以支持逻辑运算
。与、或、非(&、|、~)
# companies=Company.objects.filter(c_boys_num__lt=F('c_girls_num')-10)
# companies=Company.objects.filter(c_boys_num__gt=1).filter(c_girls_num__gt=5)#可用下面的替代
companies=Company.objects.filter(Q(c_boys_num__gt=1) & Q(c_girls_num__gt=15))#与运算用 & 或运算用 | 表示
for company in companies:
print(company.c_name)
三、模型自定义管理器(模型的显隐性)
这里先说一下,以下面这个数据表为例,当某条数据需要做删除处理时 ---------------------------(,最好对重要数据做逻辑删除,不做物理删除,)
这里有两种操作方式:
- 通过F运算或则filter()来判断这条数据属性的布尔值-----------物理性删除------------在views层显示
#物理性删除
# animals=Animal.a_m.filter(is_delete=False)
animals=Animal.objects.all()
2.通过模型自定义管理器(查数据非常方便)------不通过系统管理器objects-----------自定义管理器,重写all()系统函数来达到逻辑性删除数据
class AnimalManager(models.Manager):
def get_queryset(self):
return super(AnimalManager,self).get_queryset().filter(is_delete=False)class Animal(models.Model):
a_name=models.CharField(max_length=16)
is_delete=models.BooleanField(default=False) # 模型自定义管理器
objects=AnimalManager() -------------------------------------------------
# 模型自定义管理器(模型的显隐性)
# animals=Animal.a_m.all()

----------这里仅更新了模板的三类查询注意点,并不全----------但数据查询这些基本够用了----------------至于删除,更新---------其实都是基于查询
下期更新Django2.2模板的各种套用显示------------数据均为Mysql数据库动态数据------------不足的还望指正
Django2.2 数据库的模块model学习笔记的更多相关文章
- 【精选】Nginx模块Lua-Nginx-Module学习笔记(一)Nginx Lua API 接口详解
源码地址:https://github.com/Tinywan/Lua-Nginx-Redis 一.介绍 各种* _by_lua,* _by_lua_block和* _by_lua_file配置指令用 ...
- Acitiviti数据库表设计(学习笔记)
ACT_ID_*:与权限,用户与用户组,以及用户与用户组关系相关的表 ACT_RU_*:代表了流程引擎运行时的库表,RU表示Runtime ACT_HI_*:HI表示History当流程完成了节点以后 ...
- Nginx模块Lua-Nginx-Module学习笔记(一)Nginx Lua API 接口详解
源码地址:https://github.com/Tinywan/Lua-Nginx-Redis 一.介绍 各种* _by_lua,* _by_lua_block和* _by_lua_file配置指令用 ...
- uplift model学习笔记
一.解决的问题: 通常的 Propensity Model 和 Response Model 只是给目标用户打了个分,并没有确保模型的结果可以使得活动的提升最大化:它没有告诉市场营销人员,哪个用户最有 ...
- Orchard 模块开发学习笔记 (1)
创建模块 首先,打开Bin目录下的Orchard.exe 等到出现orchard>后, 看看命令列表中是否存在 codegen module 如果不存在,则需要先执行:feature enabl ...
- mysql之数据库基本概念(mysql学习笔记一)
数据库系统 数据库管理系统(DBMS)+数据库(DATABASE)(+数据库管理员) DBS=dbms+db 定义: 大量信息进行管理的高效解决方案,按照数据结构来组织.存储和管理数据的仓库 关系 ...
- 【官方文档】Nginx模块Nginx-Rtmp-Module学习笔记(三)流式播放Live HLS视频
源码地址:https://github.com/Tinywan/PHP_Experience HTTP Live Streaming(HLS)是由Apple Inc.实施的非常强大的流视频协议.HLS ...
- 【精选】Nginx模块Lua-Nginx-Module学习笔记(二)Lua指令详解(Directives)
源码地址:https://github.com/Tinywan/Lua-Nginx-Redis Nginx与Lua编写脚本的基本构建块是指令. 指令用于指定何时运行用户Lua代码以及如何使用结果. 下 ...
- 【官方文档】Nginx模块Nginx-Rtmp-Module学习笔记(二)HLS 指令详解
源码地址:https://github.com/Tinywan/PHP_Experience 一.在Nginx配置文件的RTMP模块中配置hls hls_key_path /tmp/hlskeys; ...
随机推荐
- PHP mysqli_fetch_field_direct() 函数
返回结果集中某个单一字段(列)的 meta-data,并输出字段名称.表格和最大长度: mysqli_fetch_field_direct(result,fieldnr); 参数 描述 result ...
- 并发编程入门(二):分析Boost对 互斥量和条件变量的封装及实现生产者消费者问题
请阅读上篇文章<并发编程实战: POSIX 使用互斥量和条件变量实现生产者/消费者问题>.当然不阅读亦不影响本篇文章的阅读. Boost的互斥量,条件变量做了很好的封装,因此比" ...
- 【csp模拟赛2】 序列操作
线性推,开数组太麻烦,可以用指针 代码: #include <iostream> #include <cstdio> #include <queue> using ...
- 数据结构实验之链表六:有序链表的建立(SDUT 2121)
#include <bits/stdc++.h> using namespace std; struct node { int data; struct node *next; }; in ...
- Contos 安装Tomcat
# 下载安装包 wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.40/bin/apache-tomcat-8. ...
- Navicat Premium 12 卸载和注册表的删除
卸载就不用我说了,win10也好,win7也好直接windows设置里的卸载,或者你觉得别的软件卸载的比较干净也行 不过还是不会删掉注册表,甚至文件夹都不删除, ... 这是卸载 ,在此说一下,为了安 ...
- SpringMVC 理论
应用系统三层架构: C/S:客户端/服务器 B/S:浏览器/服务器 标准分层: 表现层:WEB 层,接受结果,响应结果,分发请求:通常客户端使用 http 协议请求 web 层,web 层需要接受 h ...
- mybatis 操作其他数据库的数据表
配置文件里面配置的数据库只是默认数据库,并不是只能操作默认数据库.(被自己蠢死了,唉) 1. 注解方式 使用BaseMapper方式操作数据表时,在表对应的实体类上的 @table 注解描述表名时加上 ...
- Linux孤儿进程与僵尸进程
1. 基本概念: 孤儿进程:父进程退出,但是其子进程仍然在运行,那么这些子进程被称为孤儿进程:孤儿进程会被init进程收养,并作善后处理: 僵尸进程:一个已经终止,但是其父进程尚未对齐进行善后处理的进 ...
- ci框架总结(一)
在进行数据库操作前一定要先初始化数据库类:$this->load->database(); 在model类中: class Myiapp_model extends CI_Model{ p ...