随笔分类 - Django
摘要:ORM查询条件详解-contains和Icontains: contains:大小写敏感,判断某个字段是否包含了某个数据。示例代码如下: articles = Article.objects.filter(title__contains='hello') 在翻译成 SQL 语句为如下: select
阅读全文
摘要:查询操作: 查找是数据库操作中一个非常重要的技术。查询一般就是使用filter、exclude以及get三个方法来实现。我们可以在调用这些方法的时候传递不同的参数来实现查询需求。在 ORM 层面,这些查询条件都是使用 field + __ + condition 的方式来使用的。以下将那些常用的查询
阅读全文
摘要:查询操作 查找是数据库操作中一个非常重要的技术。查询一般就是使用 filter 、 exclude 以及 get 三个方法来实现。我们可以在调用这些方法的时候传递不同的参数来实现查询需求。在 ORM 层面,这、些查询条件都是使用 field + __ + condition 的方式来使用的。以下将那
阅读全文
摘要:表关系之多对多场景: 1、应用场景:比如文章和标签的关系。一篇文章可以有多个标签,一个标签可以被多个文章所引用。因此标签和文章的关系是典型的多对多的关。2、实现方式:Django 为这种多对多的实现提供了专门的 Field 。叫做 ManyToManyField 。还是拿文章和标签为例进行讲解。 示
阅读全文
摘要:表关系之一对一应用场景: 比如一个用户表和一个用户信息表。在实际网站中,可能需要保存用户的许多信息,但是有些信息是不经常用的。如果把所有信息都存放到一张表中可能会影响查询效率,因此可以把用户的一些不常用的信息存放到另外一张表中我们叫做UserInfo。但是用户表User和用户信息表UserInfo就
阅读全文
摘要:表关系:表之间的关系都是通过外键来进行关联的。而表之间的关系,无非就是三种关系:一对一、一对多(多对一)、多对多等。以下将讨论一下三种关系的应用场景及其实现方式。 一对多:1. 应用场景:比如文章和作者之间的关系。一个文章只能由一个作者编写,但是一个作者可以写多篇文章。文章和作者之间的关系就是典型的
阅读全文
摘要:外键删除操作: 如果一个模型使用了外键。那么在对方那个模型被删掉后,该进行什么样的操作。可以通过 on_delete 来指定。可以指定的类型如下:1、CASCADE :级联操作。如果外键对应的那条数据被删除了,那么这条数据也会被删除。2、PROTECT :受保护。即只要这条数据引用了外键的那条数据,
阅读全文
摘要:外键:在 MySQL 中,表有两种引擎,一种是 InnoDB ,另外一种是 myisam 。如果使用的是 InnoDB 引擎,是支持外键约束的。外键的存在使得 ORM 框架在处理表关系的时候异常的强大。因此这里我们首先来介绍下外键在 Django 中的使用。 类定义为 class ForeignKe
阅读全文
摘要:模型中 Meta 配置: 对于一些模型级别的配置。我们可以在模型中定义一个类,叫做 Meta 。然后在这个类中添加一些类属性来控制模型的作用。比如我们想要在数据库映射的时候使用自己指定的表名,而不是使用模型的名称。那么我们可以在 Meta 类中添加一个 db_table 的属性。示例代码如下: cl
阅读全文
摘要:Field的常用参数: null: 如果设置为 True , Django 将会在映射表的时候指定是否为空。默认是为 False 。在使用字符串相关的 Field (CharField/TextField)的时候,官方推荐尽量不要使用这个参数,也就是保持默认值 False 。因为 Django 在处
阅读全文
摘要:EmailField:类似于 CharField 。在数据库底层也是一个 varchar 类型。最大长度是254个字符; FileField:用来存储文件的。这个请参考后面的文件上传章节部分; ImageField:用来存储图片文件的。这个请参考后面的图片上传章节部分; FloatField:浮点类
阅读全文
摘要:django.utils.timezone.now方法: 会根据settings.py中是否设置了USE_TZ=True获取当前的时间。如果设置了,那么就获取一个aware类型的UTC时间。如果没有设置,那么就会获取一个navie类型的时间。 django.utils.timezone.localt
阅读全文
摘要:navie时间和aware时间: 什么是navie时间?什么是aware时间? navie时间:不知道自己的时间表示的是哪个时区的。也就是不知道自己几斤几两。比较幼稚。 aware时间:知道自己的时间表示的是哪个时区的。也就是比较清醒。 pytz库: 专门用来处理时区的库。这个库会经常更新一些时区的
阅读全文
摘要:常用字段: 在 Django 中,定义了一些 Field 来与数据库表中的字段类型来进行映射。以下将介绍那些常用的字段类型。 AutoField: 映射到数据库中是 int 类型,可以有自动增长的特性。一般不需要使用这个类型,如果不指定主键,那么模型会自动的生成一个叫做 id 的自动增长的主键。如果
阅读全文
摘要:ORM对数据库的增删改查基本操作: 创建模型如下: 基本的增删改查如下:
阅读全文
摘要:创建ORM模型: ORM 模型一般都是放在 app 的 models.py 文件中。每个 app 都可以拥有自己的模型。并且如果这个模型想要映射到数据库中,那么这个 app 必须要放在 settings.py 的 INSTALLED_APP 中进行安装。以下是写一个简单的书籍 ORM 模型。示例代码
阅读全文
摘要:ORM模型介绍: 随着项目越来越大,采用写原生SQL的方式在代码中会出现大量的SQL语句,那么问题就出现了: 1、SQL语句重复利用率不高,越复杂的SQL语句条件越多,代码越长。会出现很多相近的SQL语句;2、很多SQL语句是在业务逻辑中拼出来的,如果有数据库需要更改,就要去修改这些逻辑,这会很容易
阅读全文
摘要:这两节开始做个简单的图书管理系统(基于43节课程学的原生Django使用原生SQL操作): 主要实现如下功能:图书查看(包括详情)、添加和删除: 1、创建一个book_manage工程(使用pycharm创建时,同时创建一个APP——cms),url情况: 2、setting.py中静态文件加载,M
阅读全文
摘要:Django使用原生SQL语句操作数据库 Django配置连接数据库: 在操作数据库之前,首先先要连接数据库。这里我们以配置 MySQL 为例来讲解。 Django 连接数据库,不需要单独的创建一个连接对象。只需要在 settings.py 文件中做好数据库相关的配置就可以了。示例代码如下: DAT
阅读全文
摘要:MySQL数据库介绍: 在网站开发中,数据库是网站的重要组成部分。只有提供数据库,数据才能够动态的展示,而不是在网页中显示一个静态的页面。数据库有很多,比如有 SQL Server 、 Oracle 、 PostgreSQL 以及 MySQL 等等。 MySQL 由于价格实惠、简单易用、不受平台限制
阅读全文