这一节将用python django的shell命令对我们之前的sqlite数据库进行增删改查的操作,QuerySets是查询集,我们将以操作User表为例,这些命令是可以直接在views.py中使用的,并不仅仅局限于命令行,下面是我们的User表,看一看。
首先打开cmd命令行工具,cd进入到我们的helloDjango项目中,输入以下Django shell命令。
d:\helloDjango>python manage.py shell
成功之后返回如下信息。
(InteractiveConsole) >>>
我们使用以下命令尝试获取所有user的用户,提示该用户未定义,如下。
>>> User.objects.all() Traceback (most recent call last): File "<console>", line 1, in <module> NameError: name 'User' is not defined
在使用django sql语句时,必须需要导入我们的User实体类(模型),如:from blog.models import User,意思就是导入blog/models文件里面的User实体类,不然的话是会报错的,应该输入如下信息。
>>> from blog.models import User >>> User.objects.all() [<User: User object>, <User: User object>, <User: User object>] >>> 返回所有用户
这样就能查询所有的用户数据了,后面的增加用户,修改用户,排序用户,删除用户都简单的写一下,非常的简单。
//创建user用户语句 >>>User.objects.create(username='haha',password='888888') //返回此插入用户,如下 >>><User: User object>
根据用户id排序,语句如下,返回list用户列表
User.objects.order_by('id')
根据id查询某个用户,如下,如果条件是字符串则用引号,如get(username='zhangsan')
User.objects.get(id=4)
objects的filter查询返回的也是一个list用户集合,即使只有一个用户也是一个集合,如下。
User.objects.filter(id=4) [<User: User object>]
链式 QuerySets查询集的使用,例如django查询id不等于0的所有用户,并根据id排序,如下。
from django.db.models import Q User.objects.filter(~Q(id=4)).order_by('id')
update修改id=4的用户,语句如下,返回结果是int类型的参数,意思是影响了几行。
>>> User.objects.filter(id=4).update(password='99999') 1
django删除某个用户,sql命令如下。
User.objects.get(id=4).delete()
退出shell使用以下命令。
exit()
基本常见的就是这些了,倒序排序我目前还不知道怎么使用,不好意思。