参考django官方文档中执行查询模块进行实践操作整理的结果:https://docs.djangoproject.com/zh-hans/3.0/topics/db/queries/#falling-back-to-raw-sql
在项目settings中加上日志输入的如下配置:
LOGGING = { ‘version‘: 1, ‘disable_existing_loggers‘: False, ‘handlers‘: { ‘console‘:{ ‘level‘:‘DEBUG‘, ‘class‘:‘logging.StreamHandler‘, }, }, ‘loggers‘: { ‘django.db.backends‘: { ‘handlers‘: [‘console‘], ‘propagate‘: True, ‘level‘:‘DEBUG‘, }, } }
控制台即可输出对应的SQL语句:
创建对象的两种方式:save(),create()
save():要创建一个对象,用关键字参数初始化它,然后调用 save()
将其存入数据库
student = StudentModel(first_name=‘三‘,last_name=‘张‘,index=3) student.save()
create():要一步创建并保存一个对象,使用 create()
方法
通过日志打印结果来看,两种方式执行的是相同的SQL语句:
特性:
1、all()方法返回所有对象
2、filter(**kwargs)
返回一个新的 QuerySet
,包含的对象满足给定查询参数。
3、exclude(**kwargs)
返回一个新的 QuerySet
,包含的对象 不 满足给定查询参数。
4、上述3个方法返回的均是一个queryset对象,可以进行链式查询:
student1 = StudentModel.objects.all()
student2 = student1.filter(index=3)
student3 = student2.exclude(last_name=‘张‘)
三个queryset对象相互独立,互不影响
原文:https://www.cnblogs.com/Xiaojiangzi/p/13085009.html