django model filter_第6章 Django对数据库的增删改查,只学这一篇足以?

本文介绍了Django中如何进行数据库迁移,包括使用python3manage.pymakemigrations和python3manage.pymigrate命令创建和应用迁移文件。此外,还展示了如何利用Django框架提供的API进行数据的增删改查操作,如Post模型的数据操作实例。通过这些内容,开发者可以更高效地管理和操作数据库。
摘要由CSDN通过智能技术生成

models设计好后,在命令行窗口,运行python3 manage.py makemigrations 为模型的改变生成迁移文件;运行 python3 manage.py migrate 对应用数据库进行迁移。

6.1 数据迁移

数据库迁移被分解成生成和应用两个命令是为了让咱们能够在代码控制系统上提交迁移数据并使其能在多个应用里使用;这不仅仅会让开发更加简单,也给别的开发者和生产环境中的使用带来方便。

迁移那些App的models,是在settings.py的INSTALLED_APPS节点获取的。没在这里配置的,不会进行迁移。

如果想指定只迁移其中的一个,可以用命令的最后加上App的名称,如:python3 manage.py makemigrations base和python3 manage.py migrate base。

7784b3ebac8676b70da8d2fe18283442.png

如果想要查询迁移文件对应的SQL语句,可以执行命令:python3 manage.py sqlmigrate base 0001一探究竟。咦,怎么会有一个id字段,刚刚明明没定义,是不是弄错了?没有错,它是从父类(models.Model)继承下来的自增长类型的主键。

BEGIN;---- Create model Post--CREATE TABLE "base_post"("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "name" varchar(60) NOT NULL, "createDate" datetime NOT NULL);COMMIT;

6.2 增删改查

Django框架,除了生成数据表之外,竟还生成了对数据库操作的API,厉害,厉害,咱得赶紧去look一look。

1. 新增岗位数据

from base.models import Post

p = Post(name='研发经理')

p.save()

2. 删除岗位数据

from base.models import Post

Post.objects.filter(id=1).delete()

3. 修改岗位数据

from base.models import Post

Post.objects.filter(id=1).update(name='项目经理')

4. 查询所有数据

from base.models import Post

posts = Post.objects.all()

按条件查询(只列出重要的部分)

e57a1fef9dcd4d3dbdfe89f47956ec4a.png

操作数据库的方法挺多的,聚合方法,可以在django.db.models中找到。不用一一去验证,那样太累,用到时再去查找。

按我说,直接用原生的SQL语法最简单,如果你会的话。

from base.models import Postfrom django.db.models import Countpost = Post.objects.annotate(num_name=Count('项目经理'))result=post[0].num_name

这次的内容有点多,再继续下去的话,怕你伤着了,咱们先告一个段落,明天继续。

轻松一刻,放松一下,听一首曲,抿一口茶,读一本书,涨点姿势。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值