django mysql api_Django的API操作mysql中常用的语句
【背景】
增/删/改/查 如何操作数据库
导入数据库的模型In [23]: from blog.models import People
【增加记录】--三种方法
方法一: 直接使用数据模对象的create函数
In [24]: People.objects.create(name='shuaige')
Out[24]:
注意:创建成功返回对象地址
方法二:In [6]: record = People(name='choubaguai')
In [7]: record.save()
方法三:In [9]: record = People()
In [10]: record.name ='andy'
In [11]: record.save()
【删除记录】--找对对象,使用delete() 进行删除
第一找出你要删除的对象集合(id大于2的)In [19]: r_d = People.objects.filter(id__gt =2)
使用delete对象将其删除In [20]: r_d.delete()
Out[20]: (3, {'blog.People': 3})
将返回珊瑚的条目数
【改记录】-先找出来,在将对象属性重新赋值
(将id=1的名字改成andyliu)In [21]: People.objects.values_list()
Out[21]: [(1, 'liudehua'), (2, 'zhangxueyou')]
In [22]: r_m = People.objects.get(id=1)
In [23]: r_m.name = 'andyliu'
In [24]: r_m.save()
In [25]: People.objects.values_list()
Out[25]: [(1, 'andyliu'), (2, 'zhangxueyou')]
【查】 这就相当于mysql中sql语句中的select语句,其中有很多字语句进行限制查询
1 获取所有记录对象
all_record = People.objects.all()
如果要获取对象值,需要先取出某一个对象,然后取出对象中的属性In [32]: for record in all_record:
....: print(record.id)
....: print(record.name)
....:
1
andyliu
2
zhangxueyou
2 获取某个域为指定值的对象In [11]: r_p = People.objects.get(name='zhangxueyou')
In [12]: r_p.id
Out[12]: 2
注意: 这个用法不常用,如果要用,你一定要保证,你查找的一定存在这样的一个记录,且必须是唯一,不然会报错哦
3 类似mysql中where进行的条件查询使用filter函数
第一: 整数的范围比较查询()
将id大于1的对象找出来,并以值列表的形式进行返回In [15]: People.objects.filter(id__gt=1).values_list()
Out[15]: [(2, 'zhangxueyou'), (6, 'andyliu')]
gt大于
gte大于等于
lt小于
lte小于等于
ne不等于
in(也可以是其他数据类型)位于给定列表中: People.objects.filter(id__in=[1, 3, 4]) 返回一个 polls 列表(ID 值分别是 1或3或4).In [16]: People.objects.filter(name__in=['andyliu','zhangxueyou'])
Out[16]: [, , ]
4 多过滤条件查询,有一种方法是,多次使用filter函数即可In [17]: People.objects.filter(id__gt=1).filter(name='andyliu')
Out[17]: []
In [18]: People.objects.filter(id__gt=1).filter(name='andyliku')
Out[18]: []
5 查找到的对象数据(即符合条件的记录的数目)
In [25]: People.objects.count()
Out[25]: 3
等于:
In [26]: People.objects.all().count()
Out[26]: 3
符合条件的长度In [24]: People.objects.filter(name='andyliu').count()
Out[24]: 2
6 order_by()函数,进行升序/降序
-负数表示要进行降序排序In [14]: p = People.objects.order_by('-id')
In [15]: for i in p:
print(i.id)
....:
6
2
1
7 in listIn [15]:
Person.objects.filter(id__in = [1,2]).values_list()
Out[15]: [(1,
'name1', 22), (2, 'name2', 22)]
8 not in list(这里没有直接的not in list) 但是可以使用exclude,除外来等价In [16]:
Person.objects.exclude(id__in = [1,2]).values_list()
Out[16]: [(3,
'name3', 22), (4, 'name3', 22)]
9. 包含关键字的(集合链式查询)
表中的所有数据:In [20]: Person.objects.values_list()
Out[20]: [(1, 'name1', 23), (2, 'name2', 22), (3, 'name3', 22), (4, 'name3', 22)]
name这个field包含name的关键字的record记录In [21]: Person.objects.filter(name__contains="name").values_list()
Out[21]: [(1, 'name1', 23), (2, 'name2', 22), (3, 'name3', 22), (4, 'name3', 22)]
name这个field包含name的关键字的record记录并且年龄age字段不能等于23的! 使用链式查询In [23]: Person.objects.filter(name__contains="name").exclude(age=23).values_list()
Out[23]: [(2, 'name2', 22), (3, 'name3', 22), (4, 'name3', 22)]
以上需求用filter进行等价操作,取出22岁的In [24]: Person.objects.filter(name__contains="name").filter(age=22).values_list()
Out[24]: [(2, 'name2', 22), (3, 'name3', 22), (4, 'name3',
10 对象索引,类似python 列表中的切片
In [29]: Person.objects.all()[1:3]
Out[29]: [, ]
In [30]: Person.objects.all()[1:3].values_list()
Out[30]: [(2, 'name2', 22), (3, 'name3', 22)]
但是不知持负索引(会报错),如
Person.objects.all()[-1]
取代的方法:使用reverse方法来解决
11. 哈哈接下来可能是关于时间的查询(待续)
django mysql api_Django的API操作mysql中常用的语句相关推荐
- c 获取mysql列数据_转 用C API 操作MySQL数据库
用C API 操作MySQL数据库 参考MYSQL的帮助文档整理 这里归纳了C API可使用的函数,并在下一节详细介绍了它们.请参见25.2.3节,"C API函数描述". 函数 ...
- mysql可以操作指针么_使用C API操作mysql数据库
使用C API操作mysql数据库 说明:使用mysql提供的C API编程实现数据库的最基本操作,算是抛砖引玉吧.如果想了解更多,请安装mysql(如何安装可以参考本人的"软件使用之:my ...
- Oracle中常用的语句
Oracle中常用的语句 1.创建表的同时创建主键约束: 1)主键无命名:create table student(studentid int primary key not null,student ...
- mysql临时关闭索引功能_MYSQL中常用的强制性操作(例如强制索引)
mysql常用的hint 对于经常使用oracle的朋友可能知道,oracle的hint功能种类很多,对于优化sql语句提供了很多方法.同样,在mysql里,也有类似的hint功能.下面介绍一些常用的 ...
- 虚拟机开启mysql服务_远程操作虚拟机中的mysql服务器
一.查看系统端口号开发状态: 查看 服务器端口号: grep servicename /etc/services: netstat -an | grep servicename 首先需要开启3306端 ...
- c web mysql数据库_C语言操作MySQL数据库
原作者博客http://www.cnblogs.com/nliao/archive/2010/09/09/1822660.html 先看结构体 ---------------------------- ...
- python往mysql存入数据_Python操作mysql之插入数据
之前有写过一篇python查询mysql数据的文章,今天写通过python插入数据到mysql数据库. 相关mysql视频教程推荐:<mysql教程> 先建库,建表,建用户mysql> ...
- golang MySQL 占内存_golang操作mysql使用总结
前言 Golang 提供了database/sql包用于对SQL数据库的访问, 作为操作数据库的入口对象sql.DB, 主要为我们提供了两个重要的功能: sql.DB 通过数据库驱动为我们提供管理底层 ...
- mysql 导出数据字典_操作MySQL?这个库比pymysql香一百倍
原创: 阿亮 Python极客社区 操作MySQL,我们都习惯于用pymsq,基本流程就是 创建连接 创建游标 执行SQL 关闭连接 代码是这样的 import pymysql# 1.创建连接conn ...
最新文章
- 苹果电脑安装python-mac电脑安装python
- hypermesh 复合材料_【技术邻】HyperMesh复合材料建模——坐标系调整
- 干货|训练神经网络时要知道的几个要点
- 用贪心策略均分纸牌(洛谷P1031题题解,Java语言描述)
- android9 前台服务通知_Android通知概览
- 纳达尔复出迎澳网开门红 直落三盘横扫本土选手
- 牛客网编程练习之编程马拉松:发工资
- Python空间分析| 03 利用Python进行地理加权回归(GWR)
- vcftools手册重要参数集合
- grub引导项修复详解_grub2修复引导 · LINCHUAN的小站
- 帝国cms会员中心1.2
- 教授专栏13 | 陈雷:数据科学助力AI落地
- 纯HTML和CSS实现精美点赞效果
- CSS 特异性 specificity
- java 文件路径读取,java中依据路径读取文件
- 计算机名称显示word作者,如何让word文档不显示作者名
- python数据分析与应用课后实训_python数据分析与应用
- UVA 537 解题报告
- AVFoundation开发秘籍笔记:第12章 动图层内容
- JavaScript中JSON字符串转JSON对象遇到的问题
热门文章
- SpringMVC + Apache POI 实现WEB中Excel下载功能
- linux下使用python操作mysql
- 音视频技术开发周刊 | 231
- FFmpeg Filter基本使用
- 提速 30%!腾讯TQUIC 网络传输协议
- 云调用,小程序鉴权正确姿势
- 世界正在走向实时化,谈谈Twitter对流处理的理解与思考
- 你不知道的127.0.0.1和0.0.0.0地址的区别
- 停课不停学,优酷直播如何将网课点名延迟降到0.6s?
- 手绘风格的数据可视化 (萌萌风)Sketchify,及其他可视化工具(商业风)