轻松学会对Django 数据库操作

1创建Django应用

因为Django中的数据库属于应用,不属于框架。所以我首先要创建一个应用,在Django中应用也叫app,

执行python manage.py startapp "这是是你创建的名称"

python manage.py startapp Store

我这里创建的是名称为Store,所以生成了Store文件
在这里插入图片描述

2.Django ORM建模

1)创建数据库
定义数据库模型

from django.db import modeles

class StoreUser(models.Modele):
	username = models.CharFiled(max_length = 32)
	nick_name = models.CharFiled(max_length = 32)
	age = models.IntergerField()
	gender = models.CharFiled(max_length = 32)
	level = models.IntergerField()

安装应用
在这里插入图片描述
同步数据库
将创建的StoreUse表同步到数据库中

# 同步数据库命令 在Django自己的命令行中执行
pyton manage.py migrate

查看是否成功同步到数据库中
在这里插入图片描述

3 Django ORM 操作

在Django中可以通过命令行开启命令行模式
在这里插入图片描述1.常规操作
1)增加数据

from Store.models import *
s = StoreUser()
username = "zhangsan"
nick_name = "张三"
gender = "男"
# 在Django中save功能自己就已经写好了的,所以直接调用即可
s.save()

2)查看数据

# 引入StoreUser
from Store.models import StoreUser
# 查看所有用户
all_user = StoreUser.objects.all()
# 部分查询,这里演示查询性别为难的用户
gender_user = StoreUser.objects.filter(gender = "男")
# 查看一条指定的数据,这里我们查看id为1的用户
# 这里get查看数据如果是多条数据就会报错,获取到不同的内容也会报错
user = StoreUser.objects.get(id = 1)
#排序查询(正序查看)
user = StoreUser.objiects.oder_by("id")
#倒序查看(因为oder_by默认是正序,在Django中加个"-"就代表倒序了)
user = StoreUser.objects.oder_by("-id")

# 聚合查询:max avg min count,使用聚合查询的方法要引入相应的方法
from django.db.models import Count,Avg,
# 聚合Count查询,这里查询性别为男的人数,
user = StoreUser.objiects.all(gender = "男").aggregate(Count("id"))
# 计算用户的平均年龄
user = StoreUser.objiects.all().aggregate(Avg("age"))

# 分组查询,这里使用annotate统计
user = StoreUser.objiects.all().value("age").annotate(Count("age"))

# F查询,用于两个字段的比较,使用F查询要引入F
# 查询年龄大于用户等级的用户
from django.db.models import F
result = StoreUser.objects.filter(age__gt = F("level"))
# 循环查看获得的用户
for i in result:
	print(i.username)

#Q查询,逻辑查询,使用filter默认查询时并列关系
# 查询所有18岁的男生
result = StoreUser.objects.filter(age = 18, gender = "男")

3)删除操作

# 根据id删除指定对象
user = StoreUser.objects.get(id = 5)
# delete方法时Django已经写好了的功能
user.delete()

4)更改信息

#根据id获取更改信息的对象
user = StoreUser.objects.get(id = 8)
user.username = "李四"
user.save()

以上演练操作本应该是在上面所提到的Django中命令行模式下经行的,这里为了更好的展示所以使用代码块来代替。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值