python中mysql单表curd基于orm

谁说胖子不能爱 提交于 2020-01-15 13:02:24

应用demo下,models新建一个People类继承models.Model

# People类
class People(models.Model):
    name = models.CharField(max_length=20)
    age = models.IntegerField(max_length=3)
    addr = models.CharField(max_length=32)
    sex = models.IntegerField(default=0, max_length=1)

生成迁移文件 : 进入项目根目录 > cmd >  python manage.py makemigrations

写入到数据库 : python manage.py migrate

对数据库的单表curd

# 添加
def add_people(request):
    # 方式一添加 创建People对象 调用save()方法
    p = People(name="小明", age=12, sex=1, addr="中国")
    p.save()
    # 方式二添加 使用People.objects.create()
    People.objects.create(name="熊二", age=10, sex=2, addr="森林")
    # 添加传入的参数可以是字典,键名字跟数据库字段一样
    dic = {
        "name": "大明",
        "age": 10,
        "sex": 1,
        "addr": "星斗森林"
    }
    People.objects.create(**dic)
    # p.save(**dict)
# 查询 (基本的查询)
# 查询所有记录 返回所有people对象
    res = People.objects.all()
    # 查找第一条 返回一个people对象
    first_record = People.objects.first()
    # 查找最后一条 返回一个People对象
    last_record = People.objects.last()
    # filter 条件过滤 返回一个新的数据类型QuerySet 盛放的是People对象
    fil_name = People.objects.filter(name="大明")
    print(fil_name)
    fil_id = People.objects.filter(id=2)
    print(fil_id)
    # 前面的获取都是全字段 相当于 select * from People
    # values 可查询所需字段 返回的QuerySet 里面的数据是字典
    res_val = People.objects.filter(name="大明").values("name", "age", "addr")
    print(res_val)
# 删除 调用delete
# 先查询 ->后删除
    People.objects.filter(name="大明").delete()
 # 先查询后更改
 # 方式一 更新全字段 效率略低
    p = People.objects.filter(name="大明")
    p[0].name = "二明"
    p[0].save()
    # 方式二 只更新需要的字段效率高
    People.objects.filter(name="大明").update(name="二明")
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!