惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Help Net Security
腾讯CDC
爱范儿
爱范儿
Google DeepMind News
Google DeepMind News
V
V2EX
Blog — PlanetScale
Blog — PlanetScale
Engineering at Meta
Engineering at Meta
GbyAI
GbyAI
量子位
F
Fortinet All Blogs
G
Google Developers Blog
T
The Blog of Author Tim Ferriss
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Hugging Face - Blog
Hugging Face - Blog
Last Week in AI
Last Week in AI
T
Tailwind CSS Blog
J
Java Code Geeks
S
SegmentFault 最新的问题
D
Docker
博客园 - 司徒正美
The GitHub Blog
The GitHub Blog
Jina AI
Jina AI
M
MIT News - Artificial intelligence
博客园 - 【当耐特】

碎言

不懂就别瞎掰掰:【程序员的常识】写的什么玩意? AI 辅助编程下的程序设计与代码编写 使用 Next.js 和 Tailwind CSS 构建可编辑和删除的 ToDo 待办事项应用 探索编程新境界:MarsCode 助你一臂之力 使用 Next.js 和 Tailwind CSS 搭建静态图片展示站点并部署到 Vercel AI 辅助编程:免费工具的优缺点及官网一览 GitHub push更新总是失败,写个python脚本解决 把博客从GitHub迁移到到了vercel ComfyUI 和 Flux.1 安装与使用教程 Flux.1 入门必知:硬件、环境、模型 Git项目的子文件夹中的内容无法同步到远程仓库的解决方法 blender流体Fluid使用中没有流体、流体穿模等一些问题的解决方法 博客聚合网站:积薪,竟然关闭了! blender日常使用中的一些技巧 虽然只有我自己在用,但还是更新了碎言博客的源代码, 与其在迷茫中困惑,不如在努力中前进 差点忘了我还有一个博客... 秧歌、博客和AI 终于熬到了新手上路 好久没有更新博客了。。。 老妈大腿骨骨折,最近一直在医院护理 Hello, September! Ubuntu开机自动启动Docker容器运行WordPress Docker 简单快速安装部署WordPress Docker下安装MySQL 加碘盐能防核辐射的话,还怕什么核战争? shields.io 一个简洁、一致、清晰的徽章 Ubuntu下使用root登录ssh的设置 GitHub Actions 构建、部署 Next.js项目 我又用回了"IE"--edge
Django 4.2 复习笔记(四)数据的查询Django的ORM
J.sky · 2023-05-25 · via 碎言

Django的ORM操作非常简答,几乎把所有你能想到的数据库的操作都封装了,即便没有你需要的,也可以使用原生的SQL语句进行查询。

创建模型

为了测试查询,先创建一个简单的Django模型:

myapp/models.py

class Article(models.Model):
    title = models.CharField(max_length=128,verbose_name='文章标题')
    content = models.TextField(verbose_name='文章内容')

其他还有一些操作:配置文件里需要添加应用,连接数据库和生成数据库的表,这些操作之前都有介绍,参考:Django 4.2 复习笔记(二)编写和调试Model模型

增删改查(CRUD)

终端下敲入:

$ python manage.py shell

开始测试Django的增删改查(CRUD)

添加数据

>>> from myapp.models import Article
>>> a = Article(title="测试文章的标题",content="哈哈,我来测试一下......")
>>> a.save()
>>> a.title
'测试文章的标题'
>>> a.id
2

更新数据

>>> a.title="修改后的标题"
>>> a.save()
>>> a.title
'修改后的标题'
>>> 

删除数据

>>> a.delete()

此时数据已经删除,在表中已不存在。

查询

数据的查询的需求有时是非常复杂的,这里只列举一些常用的查询。

Django的ORM数据操作常用函数:

all()函数,返回符合条件的全部记录。

arts = Article.objects.all()

filter()函数,返回指定条件的记录。filter后面的括号内为过滤条件,类似于SQL中语句where后面的条件语句。

>>> b = Article.objects.filter(title='aaa')
>>> len(b)
1
>>> 

用 get() 检索单个对象.

c = Article.objects.get(title='aaa')

order_by()函数,按照order_by后面括号中的字段排序。

exclude(**kwargs) 返回一个新的 QuerySet,包含的对象 不 满足给定查询参数。

总结

Django查询还有很多方法,这里就不一一介绍了,请参考官方文档:

执行查询