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中命令行模式下经行的,这里为了更好的展示所以使用代码块来代替。