Django进阶Model篇008 - 使用原生sql】的更多相关文章

注意:使用原生sql的方式主要目的是解决一些很复杂的sql不能用ORM的方式写出的问题. 一.extra:结果集修改器-一种提供额外查询参数的机制 二.执行原始sql并返回模型实例 三.直接执行自定义SQL:这种方式完全不依赖model,前面两种还是要依赖model 1.使用extra:查询人民邮电出版社出版并且价格大于50元的书籍 >>> Book.objects.filter(publisher__name='人民邮电出版社').extra(where=['price>50']…
一.数据库配置 django 默认支持sqlite.mysql.oracle.postgresql数据库,像db2和sqlserver之类的数据库需要第三方的支持,具体详见https://docs.djangoproject.com/en/1.10/ref/databases/ 一.环境准备 1.创建项目 1.使用命令创建项目和应用 创建项目:django-admin startprojcet xxx 创建应用:python manage.py startapp app01 启动应用:pytho…
django.db.models.query.QuerySet QuerySet特点: 1.可迭代 2.可切片 查询相关API 1.get(**kwargs):返回与所给的筛选条件相匹配的对象,返回结果有且只有一个.如果符合筛选条件的对象超过一个,就会抛出MultipleObjectsReturned异常,如果没有找到符合筛选条件的对象,就会抛出DoesNotExist异常. 2.all():查询所有结果的对象集. 3.filter(**kwargs):它包含了与所给的筛选条件相匹配的对象集.…
一.增加 create和save方法 实例: 1.增加一条作者记录 >>> from hello.models import * >>> Author.objects.create(name='胡大海') >>> AuthorDetail.objects.create(sex=False,email='333@qq.com',address='北京XX',birthday='1988-1-2',author_id=1) 2.增加一条出版社记录 >…
接着前面的例子,举例聚集查询和分组查询例子如下: 1.查询人民邮电出版社出了多少本书 >>> Book.objects.filter(publisher__name='人民邮电出版社').count() >>> from django.db.models import * >>> Book.objects.filter(publisher__name='人民邮电出版社').aggregate(Count('title')) 2.查询陈吉出的书总价是多少…
一.创建数据模型. 实例: 作者模型:一个作者有姓名. 作者详情模型:把作者的详情放到详情表,包含性别.email 地址和出生日期,作者详情模型与作者模型之间是一对一的关系(OneToOneField) 出版商模型:出版商有名称,地址,所在城市,省,国家,网址. 书籍模型:书籍有书名,出版日期,价格.一本书可能会有多个作者,一个作者也可以写多本书,所以作者与书籍的关系是多对多的关联关系(many-to-many),一本书只应该由一个出版商出版,所以出版商和书籍是一对多的关联关系(one-to-m…
django 默认支持sqlite.mysql.oracle.postgresql数据库,像db2和sqlserver之类的数据库需要第三方的支持,具体详见: https://docs.djangoproject.com/en/1.10/ref/databases/ 环境准备 使用命令行创建hello_django 项目与hello app django-admin startproject hello_django cd hello_django django-admin startapp h…
一.认识一个目录 目录名:migrations 作用:用来存放通过makemigrations命令生成的数据库脚本,不熟悉的情况下,里面生成的脚本不要轻易修改.app目录下必须要有migrations的目录且该目录下必须要有__init__.py才能正常的使用数据库同步的功能. 二.认识一张数据表(django_migrations) 表中的字段: app:app名字 name:脚本的文件名称 applied:脚本执行的时间 三.数据库相关的命令 flush:清空数据库-恢复数据库到最初状态 m…
接着前面的例子,举例多表查询实例如下: 1.查询作战的所有完整信息. >>> AuthorDetail.objects.values('sex','email','address','birthday','author__name') 2.查询<持续集成实践>这本书的作者姓名,还有出版社的名字 >>> Book.objects.filter(title='持续集成实践').values('authors__name','publisher__name') 3…
到目前为止,当程序涉及到数据库相关操作时,我们一般都会这么操作:    (1)创建数据库,设计表结构和字段    (2)使用MySQLdb来连接数据库,并编写数据访问层代码    (3)业务逻辑层去调用数据访问层,执行数据库操作 import MySQLdb def GetList(sql): db = MySQLdb.connect(user=', host='localhost') cursor = db.cursor() cursor.execute(sql) data = cursor.…