django-数据库的增删改查操作
django-数据库的增删改查操作
1.添加用户记录
def login(request):
增加用户记录 使用save()方法来增加记录
username = UserInfo(username='tom', password='123')
username.save()
2.使用遍历方法创建用户信息
user = {'username': 'wangwang', 'password': '1234'}
UserInfo.objects.create(**user)
3.增加用户方法2
UserInfo.objects.create(username='wangwei', password='111')
批量插入 嵌套create方法在shell中执行
UserInfo.objects.create(UserInfo.objects.create(username='wangjian', password='222'),
UserInfo.objects.create(username='wanghui', password='222'),
UserInfo.objects.create(username='wanglong', password='222'))
4.批量插入方法2
UserInfo.objects.bulk_create([UserInfo(username='huihui', password='222'),
UserInfo(username='dongmao', password='222'),
UserInfo(username='zhouzhou', password='222'),
UserInfo(username='dongmao1', password='222'),
UserInfo(username='zhouzhou1', password='222')
])
6. 修改用户记录 先查看是否有该字段,然后调用字段直接进行修改
user = UserInfo.objects.get(userid=1)
print(user)
user.password = '3333'
user.save()
7. 删除用户记录 使用delete方法删除指定行
user = UserInfo.objects.get(userid=2)
print(user, type(user))
if user:
user.delete()
8.批量删除多条记录
users = UserInfo.objects.filter(userid__gte=2)
print(users)
users.delete()
9.数据查询
firstname = ["张", "李", "郑", "吴", "赵", "周", "王"]
lastname = ["建军", "建辉", "建业", "建党", "建国"]
users = []
for name in range(100):
username = firstname[randint(0, 6)] + lastname[randint(0, 4)]+str(randint(0, 10000))
users.append(UserInfo(username=username, password=str(randint(11111, 999999))))
UserInfo.objects.bulk_create(users)
return HttpResponse("批量查询")
firstname = ["张", "李", "郑", "吴", "赵", "周", "王"]
lastname = ["建军", "建辉", "建业", "建党", "建国"]
users = []
for name in range(100):
username = firstname[randint(0, 6)] + lastname[randint(0, 4)]+str(randint(0, 10000))
users.append(UserInfo(username=username, password=str(randint(11111, 999999))))
UserInfo.objects.bulk_create(users)
return HttpResponse("批量查询")
10.使用过滤器查询数据
def query(request):
# all过滤器查询所有数据
users = UserInfo.objects.all()
print(users)
return render(request, 'index.html', locals())
# filter 过滤器 条件查询
users = UserInfo.objects.filter(userid__gt=100).filter(userid__lt=200)
print(users)
return render(request, 'index.html', locals())
def query(request):
# all过滤器查询所有数据
users = UserInfo.objects.all()
print(users)
return render(request, 'index.html', locals())
# filter 过滤器 条件查询
users = UserInfo.objects.filter(userid__gt=100).filter(userid__lt=200)
print(users)
return render(request, 'index.html', locals())
11.def curd(request):
# 数据查询
user = UserInfo()
user.username = '王辉'
user.password = '2222222'
user.save()
return HttpResponse("CURD")
# 数据查询
user = UserInfo()
user.username = '王辉'
user.password = '2222222'
user.save()
return HttpResponse("CURD")
12.数据排序 使用order_by()方法进行排序
[:number]切片取第前number条记录
def order(request):
data = UserInfo.objects.order_by('username')
for user in data:
print(user.username)
return HttpResponse("排序")
[:number]切片取第前number条记录
def order(request):
data = UserInfo.objects.order_by('username')
for user in data:
print(user.username)
return HttpResponse("排序")
13.查询指定字段
def curd(request):
data = UserInfo.objects.all().values('username')
for user in data:
print(user)
def curd(request):
data = UserInfo.objects.all().values('username')
for user in data:
print(user)
14.去除查询中重复字段
def distinctview(request):
data = UserInfo.objects.all().values("password").distinct()[:10]
print(data)
def distinctview(request):
data = UserInfo.objects.all().values("password").distinct()[:10]
print(data)
15.反序 使用reverse方法
def fx(request):
data = UserInfo.objects.order_by('userid').reverse()
print(data)
return HttpResponse("curd")
def fx(request):
data = UserInfo.objects.order_by('userid').reverse()
print(data)
return HttpResponse("curd")
16.非过滤器查询方法
def process_query(request):
get方法只能返回一条记录
user = UserInfo.objects.get(userid=100)
print("111")
print(user)
def process_query(request):
get方法只能返回一条记录
user = UserInfo.objects.get(userid=100)
print("111")
print(user)
17.使用first方法返回一个对象
user = UserInfo.objects.first()
print(user)
user = UserInfo.objects.first()
print(user)
18.返回最后一个对象 使用last()方法
user = UserInfo.objects.last()
print(user)
user = UserInfo.objects.last()
print(user)
19.查询结果集中的记录数目
num = UserInfo.objects.filter(userid__gte=17).count()
print(num)
num = UserInfo.objects.filter(userid__gte=17).count()
print(num)
20.判断结果集是否为空
flag = UserInfo.objects.filter(userid__lt=17).all().exists()
print(flag)
return HttpResponse("非过滤器查询方法")
"""
关系运算符的表达式的使用
>= 字段__get=num
> 字段__gt=num
< 字段__lt=num
<= 字段__lte=num
== 字段=num
!= 字段__ne=num
"""
flag = UserInfo.objects.filter(userid__lt=17).all().exists()
print(flag)
return HttpResponse("非过滤器查询方法")
"""
关系运算符的表达式的使用
>= 字段__get=num
> 字段__gt=num
< 字段__lt=num
<= 字段__lte=num
== 字段=num
!= 字段__ne=num
"""
21.多个条件查询的逻辑与连接,查询出大于等于100小于200的用户
user = UserInfo.objects.filter(userid__lt=200, userid__gte=100)
print(user)
user = UserInfo.objects.filter(userid__lt=200, userid__gte=100)
print(user)
22.集合查询
data = UserInfo.objects.filter(userid__in=[17, 18, 19])
print(data)
data = UserInfo.objects.filter(userid__in=[17, 18, 19])
print(data)
23.查询字段是否为空
data = UserInfo.objects.filter(username__isnull=True)
print(data)
data = UserInfo.objects.filter(username__isnull=True)
print(data)
24.字符串操作查询
# __startwith以什么字符串开头的所有字段
data = UserInfo.objects.filter(username__startswith='张')
for user in data:
print(user)
# __startwith以什么字符串开头的所有字段
data = UserInfo.objects.filter(username__startswith='张')
for user in data:
print(user)
25.使用正则表达式匹配查询 使用————reges方法
data = UserInfo.objects.filter(username__regex=r'3$')
print(data)
data = UserInfo.objects.filter(username__regex=r'3$')
print(data)
26.日期查询操作
data = UserInfo.objects.filter(regtime__year=2021)
print(data)
return HttpResponse("多条件的逻辑与查询")
data = UserInfo.objects.filter(regtime__year=2021)
print(data)
return HttpResponse("多条件的逻辑与查询")
27.统计查询
def group(request):
#查询最大userid
userid = UserInfo.objects.aggregate(Max('userid'))
print(userid)
# 查询最小值userid
userid = UserInfo.objects.aggregate(Min('userid'))
print(userid)
# 统计分组查询
data = UserInfo.objects.values('username').annotate(Count('userid')).filter(userid=30)
print(data)
return HttpResponse("统计查询")
def group(request):
#查询最大userid
userid = UserInfo.objects.aggregate(Max('userid'))
print(userid)
# 查询最小值userid
userid = UserInfo.objects.aggregate(Min('userid'))
print(userid)
# 统计分组查询
data = UserInfo.objects.values('username').annotate(Count('userid')).filter(userid=30)
print(data)
return HttpResponse("统计查询")django-数据库的增删改查操作的更多相关文章
- PHP程序中使用PDO对象实现对数据库的增删改查操作的示例代码
PHP程序中使用PDO对象实现对数据库的增删改查操作(PHP+smarty) dbconn.php <?php //------------------------使用PDO方式连接数据库文件- ...
- python web.py操作mysql数据库,实现对数据库的增删改查操作
使用web.py框架,实现对mysql数据库的增删改查操作: 该示例代码中连接的是本地数据库testdb,user表,表结构比较简单,只有两个字段:mobile和passwd,类型均为字符型 实际应用 ...
- TP5.1:数据库的增删改查操作(基于面向对象操作)
我们现实中对数据库的增删改查操作,都是使用模型类进行操作的(表名::),也就是面向对象操作,只有底层的代码用的是数据库操作(Db::table('表名')) 下面我将贴出模型类进行的增删改查操作,通过 ...
- 通过jdbc连接MySql数据库的增删改查操作
一.获取数据库连接 要对MySql数据库内的数据进行增删改查等操作,首先要获取数据库连接 JDBC:Java中连接数据库方式 具体操作如下: 获取数据库连接的步骤: 1.先定义好四个参数 String ...
- TP5.1:数据库的增删改查操作(基于数据库操作)
1.在app/index/controller文件夹下创建一个文件,名为:Operation 注意:起名一定要避开关键字,例如:mysql,curd等等,如果使用关键字起名,会造成报错! 在Opera ...
- Django中ORM对数据库的增删改查操作
前言 什么是ORM? ORM(对象关系映射)指用面向对象的方法处理数据库中的创建表以及数据的增删改查等操作. 简而言之,就是将数据库的一张表当作一个类,数据库中的每一条记录当作一个对象.在 ...
- greendao对SQLite数据库的增删改查操作
利用greendao操作数据库时,都是以对象或者对象的list来进行增删改查的操作,操作的结果都是用一个list来接收的!!! 1.增加一条记录 Stu stu01=new Stu();stu01.s ...
- nodejs对mongodb数据库的增删改查操作(转载)
首先要确保mongodb的正确安装,安装参照:http://docs.mongodb.org/manual/tutorial/install-mongodb-on-debian-or-ubuntu-l ...
- 69.nodejs对mongodb数据库的增删改查操作
转自:https://www.cnblogs.com/sexintercourse/p/6485381.html 首先要确保mongodb的正确安装,安装参照:http://docs.mongodb. ...
- django数据库的增删改查
正常启动服务安装数据库cmd命令:python manage.py makemigrations 创建用户 在pxm里面会有一个py文件..这就是生成了表结构cmd命令:python manage.p ...
随机推荐
- Flutter: AnimatedList 一个滚动容器,可在插入或移除项目时为其设置动画
Flutter Widget of the Week import 'dart:math'; import 'package:flutter/material.dart'; void main() = ...
- k8s部署mysql数据持久化
在这里我部署mysql的目的是为了后面将上一篇博客docker打包的el-admin镜像部署到k8s上,所以本文主要是部署mysql并实现持久化. 1.将我们的应用都部署到 el-admin 这个命名 ...
- NGK全球启动大会正式启动,资产上链的前景与机会在哪?
据彭博社报道,加州时间11月25日,NGK全球启动大会在美国硅谷圆满落幕,本次NGK全球启动大会为NGK全球化进程正式拉开了帷幕. 众多业界人士共襄盛举,共同进行探讨未来公链发展的去向和契机. 当前, ...
- 手把手教你Spring Boot整合Mybatis Plus和Swagger2
前言:如果你是初学者,请完全按照我的教程以及代码来搭建(文末会附上完整的项目代码包,你可以直接下载我提供的完整项目代码包然后自行体验!),为了照顾初学者所以贴图比较多,请耐心跟着教程来,希望这个项目D ...
- 通过CollectionUtils工具类判断集合是否为空,通过StringUtils工具类判断字符串是否为空
通过CollectionUtils工具类判断集合是否为空 先引入CollectionUtils工具类: import org.apache.commons.collections4.Collectio ...
- Linux下搭建RocketMQ环境
Apache 官网: http://rocketmq.apache.org/ RocketMQ 的 Github 地址: English:https://github.com/apache/rocke ...
- 【译】Rust宏:教程与示例(二)
原文标题:Macros in Rust: A tutorial with examples 原文链接:https://blog.logrocket.com/macros-in-rust-a-tutor ...
- zxy的猪错误
我觉得这篇文章还是要重构啊,如果哪道题调的久了就标上日期放上来吧. 2021/3/10 题目:玩游戏 \(\tt memset\) 不能直接清空一个指针指向的数组,因为不知道 \(\tt size\) ...
- 2017算法期末复习练习赛-G Beihang Couple Pairing Comunity 2017 题解(网络流)
理解不够透彻.好题不可浪费,写题解以增进理解.会陆续补充题目.(咕咕咕) G Beihang Couple Pairing Comunity 2017 题目链接 Beihang Couple Pair ...
- POJ_2253 Frogger 【最短路变形】
一.题目 Frogger 二.分析 题意关键点就是那个青蛙距离.就是所有1到2的点的路径中,每条路径都可以确定一个最大值,这个最大值就是青蛙要跳的青蛙距离,然后要求这个青蛙距离最小值. 其实就是最短路 ...