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查询还有很多方法,这里就不一一介绍了,请参考官方文档: