Djangp 提供了一套抽象的 API ,能够对数据库进行 CRUD (create,retrieve,update,delete objects)
1、使用 shell 操作
安装 ipython 交互环境
pip install -i https://pypi.douban.com/simple ipython
pyhton manage.py shell -i ipython
查看所有项目:Projects.objects.all()
2、查看数据库日志记录
%PROGRAMDATA%\M有SQL\MySQL Server x.x\my.ini
修改配置后重启生效
log-output=FILE
general-log=1
general_log_file="mysql_keyou.log"
3、c (create),有两种方式新建数据
~~:使用模型内构造方法,
one_obj = Projects(name='tets', leader='qwe')
one_obj.save() # 调用save才会在数据库中执行sql
~~:使用create,
Projects.objects.create(name="test", leader="werw")
4、r(retrieve),获取数据库数据
~~:获取一个数据表的所有记录:Projects.objects.all ()
返回所有记录组成的模型对象集合(queryset 查询集,就相当于一个存放了所有项目对象的列表)
~~:获取指定记录
get:只能返回一条记录,若返回多条记录或者记录不存在则报错,所有get 方法的参数一般为主键或者唯一键,Projects.objects.get( id=1 )
filter:获取某一些记录,返回的是满足条件之后的queryset,Projects.objects.filter(id=1)
使用特定的过滤方法:模型类属性名(字段名)+ __ + 过滤的规则,
如查询包含某个字符串的所有记录返回:Projects.objects.filter( leader__contains = 'icon' )
exclude:获取某一些记录,返回的是不满足条件之后的 queryset ,Projects.objects.exclude( id=1 )
~~:关联查询,规则:外键字段 + __子表的字段名+ __contains
如查询项目下所有接口名称:Projects.objects.filter( interface__name == ' test ' )
~~:多条件查询,条件之间默认是与关系,Projects.objects.filter( interface__name == ' test ' , leader='34d')
使用Q变量指定多个变量,条件之间是或关系,Projects.objects.filter(Q( interface__name == ' test ' )| Q( leader='34d'))
~~:查询集的操作
a. 查询集相当于一个列表,支持列表中的大多数操作(通过数字正向索引获取值,正向切片,for)
b. 查询集是对数据库操作的一种优化
c. 查询集会缓存结果
d. 惰性查询
e. 查询集还支持链式操作
5、update,先获取需要修改的模型对象,然后修改数据,最后保存
one_project = Projects.objects.get( id=1 )
one_project.leader = 'sdsw'
one_project. save()
6、delete,先获取需要删除的模型对象,然后删除数据,最后保存
one_project = Projects.objects.get( id=1 )
one_project.delete()
one_project. save()
7、排序操作,默认从小到大排序
Projects.objects.get( id=1 ).order_by('id')
标签:__,leader,数据库,查询,objects,操作,Django,id,Projects From: https://www.cnblogs.com/lili37/p/17614592.html