
Django2.0 db
狙如
这个作者很懒,什么都没留下…
展开
-
Django2.0-db(1)-配置Django的mysql
安装mysql 自行安装mysql,然后启动服务(windows安装后会自动开机启动) 配置Django 首先要新建一个数据库 用navicat连接Mysql,连接名随意 新建数据库,注意要UTF-8格式 在setting.py中配置 DATABASES = { 'default': { # 数据库引擎(sqlite, mysql, oracle)...原创 2018-11-10 16:05:14 · 384 阅读 · 0 评论 -
Django2.0-db(11)-ORM模型迁移
笔记在知了课堂-Django开发的基础上更改 ORM模型迁移 迁移命令: makemigrations:将模型生成迁移脚本。模型所在的 app,必须放在 settings.py中的INSTALLED_APPS 中。这个命令有以下几个常用选项: [app_label]:后面可以跟一个或者多个app,那么就只会针对这几个app生成迁移脚本。如果没有任何的app_label,那么会检查INSTAL...转载 2018-11-11 12:01:54 · 396 阅读 · 0 评论 -
Django2.0-db(10)-什么时候`Django`会将`QuerySet`转换为`SQL`去执行
笔记在知了课堂-Django开发的基础上更改 什么时候Django会将QuerySet转换为SQL去执行 生成一个QuerySet对象并不会马上转换为SQL语句去执行。 比如我们获取Book表下所有的图书: books = Book.objects.all() print(connection.queries) 我们可以看到在打印connection.quries的时候打印的是一个空的列表。说明...转载 2018-11-10 17:34:40 · 223 阅读 · 0 评论 -
Django2.0-db(9)-QuerySet的API
笔记在知了课堂-Django开发的基础上更改 QuerySet API 模型.objects 这个对象是django.db.models.manager.Manager的对象,该类是空壳类。上面所有的方法都是从QuerySet这个类上面拷贝过来的。 以下是会返回新的QuerySet对象的方法。 filter():将满足条件的数据提取出来,返回一个新的QuerySet。具体的filter可以提供...转载 2018-11-10 17:32:32 · 400 阅读 · 0 评论 -
Django2.0-db(8)-查询操作-F表达式和Q表达式
笔记在知了课堂-Django开发的基础上更改 F表达式和Q表达式 F表达式 动态的获取某个字段上的值。不会真正的去数据库中查询数据,仅仅表示。 F表达式是用来优化ORM操作数据库的。比如我们要将公司所有员工的薪水都增加1000元,如果按照正常的流程,应该是先从数据库中提取所有的员工工资到Python内存中,然后使用Python代码在员工工资的基础之上增加1000元,最后再保存到数据库中。这里面涉...转载 2018-11-10 17:27:19 · 748 阅读 · 0 评论 -
Django2.0-db(7)-查询操作-聚合函数
笔记在知了课堂-Django开发的基础上更改 反向查询和反向引用 反向查询: 将模型名字小写化。 比如article_in。可以通过related_query_name来指定名字。 反向引用: 将模型名字小写化,加上_set。比如article_set,可以通过related_name来指定自己的方式。 聚合函数 如果你用原生SQL,则可以使用聚合函数来提取数据。比如提取某个商品销售的数量,...转载 2018-11-10 17:25:33 · 504 阅读 · 0 评论 -
Django2.0-db(6)-查询操作-查询条件
笔记在知了课堂-Django开发的基础上更改 查询操作 查找是数据库操作中一个非常重要的技术。查询一般就是使用filter、exclude以及get三个方法来实现。我们可以在调用这些方法的时候传递不同的参数来实现查询需求。在ORM层面,这些查询条件都是使用field+__+condition的方式来使用的。 get返回一个模型对象 filter返回一个QuerySet QuerySet.quer...转载 2018-11-10 17:20:03 · 912 阅读 · 0 评论 -
Django2.0-db(5)-表关系
笔记在知了课堂-Django开发的基础上更改 表关系 表之间的关系都是通过外键来进行关联的。而表之间的关系 一对多 应用场景:比如文章和作者之间的关系。一个文章只能由一个作者编写,但是一个作者可以写多篇文章。文章和作者之间的关系就是典型的多对一的关系。 实现方式:一对多或者多对一,都是通过ForeignKey来实现的。 在多的那边设置 以文章和作者的案例进行讲解。 class Use...转载 2018-11-10 16:52:40 · 217 阅读 · 0 评论 -
Django2.0-db(4)-Field常用参数,Meta设置,外键
笔记在知了课堂-Django开发的基础上更改 Field常用参数 null 默认为False。如果设置为True,Djangoi会在映射表的时候指定是否为空。 在使用字符串相关的Field(比如CharField和TextField),官方推荐不要使用该参数,即默认False Django在处理字符串相关的Field时,即使这个Field的null= False,如果你没有给这个Field传递任...转载 2018-11-10 16:35:19 · 699 阅读 · 0 评论 -
Django2.0-db(3)-模型常用字段, navie和aware时间
模型常用字段 笔记在知了课堂-Django开发的基础上更改 常用字段 Django中,定义了一些Field来与数据库表中的字段类型来进行映射。 AutoField 映射到数据库中的是int类型,可以有自动增长的特性。 如果不指定主键,模型会自动生成一个叫做 id的自动增长模型。 该field可以指定名字 BigAutoField 64位的整型,对应数据库的 bigInt,类似 AutoField...转载 2018-11-10 16:31:10 · 460 阅读 · 0 评论 -
Django2.0-db(2)-ORM和增删改查
ORM 将ORM模型映射到数据库中的步骤如下: 在settings.py中的DATABASES配置好数据库 确保app已安装(INSTALLED APPS) 在app的models.py中定义好模型,该模型(类)必须继承于models.MODEL from django.db import models # Create your models here. class Boo...转载 2018-11-10 16:09:42 · 554 阅读 · 0 评论 -
Django2.0-db(12)-根据已有的表自动生成模型
笔记在知了课堂-Django开发的基础上更改 根据已有的表自动生成模型: 在实际开发中,有些时候可能数据库已经存在了。如果我们用Django来开发一个网站,读取的是之前已经存在的数据库中的数据。那么该如何将模型与数据库中的表映射呢?根据旧的数据库生成对应的ORM模型,需要以下几个步骤: Django给我们提供了一个inspectdb的命令,可以非常方便的将已经存在的表,自动的生成模型。想要使用...转载 2018-11-11 12:03:46 · 2141 阅读 · 1 评论