随笔分类 -  Django

主要记录Django学习过程
摘要:查询操作: 查找是数据库操作中一个非常重要的技术。查询一般就是使用filter、exclude以及get三个方法来实现。我们可以在调用这些方法的时候传递不同的参数来实现查询需求。在 ORM 层面,这些查询条件都是使用 field + __ + condition 的方式来使用的。以下将那些常用的查询 阅读全文
posted @ 2019-01-06 16:03 zheng-weimin 阅读(2113) 评论(0) 推荐(0)
摘要:准备工作,啥也不说了,直接上图说明: 1、每次创建APP和迁移数据库都要打开cmd窗口,有点麻烦;如下界面窗口可以直接使用: 2、pycharm连接MySQL数据库(其中遇到驱动问题:百度一下): 备注:直接打开数据库的表,如果要保存,使用如下按键:crtl + enter 阅读全文
posted @ 2019-01-06 15:05 zheng-weimin 阅读(183) 评论(0) 推荐(0)
摘要:表关系之多对多场景: 1、应用场景:比如文章和标签的关系。一篇文章可以有多个标签,一个标签可以被多个文章所引用。因此标签和文章的关系是典型的多对多的关。2、实现方式:Django 为这种多对多的实现提供了专门的 Field 。叫做 ManyToManyField 。还是拿文章和标签为例进行讲解。 示 阅读全文
posted @ 2019-01-06 11:51 zheng-weimin 阅读(154) 评论(0) 推荐(0)
摘要:表关系之一对一应用场景: 比如一个用户表和一个用户信息表。在实际网站中,可能需要保存用户的许多信息,但是有些信息是不经常用的。如果把所有信息都存放到一张表中可能会影响查询效率,因此可以把用户的一些不常用的信息存放到另外一张表中我们叫做UserInfo。但是用户表User和用户信息表UserInfo就 阅读全文
posted @ 2019-01-06 10:48 zheng-weimin 阅读(165) 评论(0) 推荐(0)
摘要:表关系:表之间的关系都是通过外键来进行关联的。而表之间的关系,无非就是三种关系:一对一、一对多(多对一)、多对多等。以下将讨论一下三种关系的应用场景及其实现方式。 一对多:1. 应用场景:比如文章和作者之间的关系。一个文章只能由一个作者编写,但是一个作者可以写多篇文章。文章和作者之间的关系就是典型的 阅读全文
posted @ 2019-01-05 22:26 zheng-weimin 阅读(266) 评论(0) 推荐(0)
摘要:外键删除操作: 如果一个模型使用了外键。那么在对方那个模型被删掉后,该进行什么样的操作。可以通过 on_delete 来指定。可以指定的类型如下:1、CASCADE :级联操作。如果外键对应的那条数据被删除了,那么这条数据也会被删除。2、PROTECT :受保护。即只要这条数据引用了外键的那条数据, 阅读全文
posted @ 2019-01-05 18:01 zheng-weimin 阅读(676) 评论(0) 推荐(0)
摘要:外键:在 MySQL 中,表有两种引擎,一种是 InnoDB ,另外一种是 myisam 。如果使用的是 InnoDB 引擎,是支持外键约束的。外键的存在使得 ORM 框架在处理表关系的时候异常的强大。因此这里我们首先来介绍下外键在 Django 中的使用。 类定义为 class ForeignKe 阅读全文
posted @ 2019-01-05 17:10 zheng-weimin 阅读(947) 评论(0) 推荐(0)
摘要:模型中 Meta 配置: 对于一些模型级别的配置。我们可以在模型中定义一个类,叫做 Meta 。然后在这个类中添加一些类属性来控制模型的作用。比如我们想要在数据库映射的时候使用自己指定的表名,而不是使用模型的名称。那么我们可以在 Meta 类中添加一个 db_table 的属性。示例代码如下: 以下 阅读全文
posted @ 2019-01-04 21:46 zheng-weimin 阅读(241) 评论(0) 推荐(0)
摘要:Field的常用参数: null: 如果设置为 True , Django 将会在映射表的时候指定是否为空。默认是为 False 。在使用字符串相关的 Field (CharField/TextField)的时候,官方推荐尽量不要使用这个参数,也就是保持默认值 False 。因为 Django 在处 阅读全文
posted @ 2019-01-04 13:53 zheng-weimin 阅读(738) 评论(0) 推荐(0)
摘要:EmailField:类似于 CharField 。在数据库底层也是一个 varchar 类型。最大长度是254个字符; FileField:用来存储文件的。这个请参考后面的文件上传章节部分; ImageField:用来存储图片文件的。这个请参考后面的图片上传章节部分; FloatField:浮点类 阅读全文
posted @ 2019-01-03 21:50 zheng-weimin 阅读(164) 评论(0) 推荐(0)
摘要:django.utils.timezone.now方法: 会根据settings.py中是否设置了USE_TZ=True获取当前的时间。如果设置了,那么就获取一个aware类型的UTC时间。如果没有设置,那么就会获取一个navie类型的时间。 django.utils.timezone.localt 阅读全文
posted @ 2019-01-03 21:01 zheng-weimin 阅读(142) 评论(0) 推荐(0)
摘要:navie时间和aware时间: 什么是navie时间?什么是aware时间? pytz库: 专门用来处理时区的库。这个库会经常更新一些时区的数据,不需要我们担心。并且这个库在安装Django的时候会默认的安装。如果没有安装,那么可以通过pip install pytz的方式进行安装。 astime 阅读全文
posted @ 2019-01-03 19:53 zheng-weimin 阅读(363) 评论(0) 推荐(0)
摘要:常用字段: 在 Django 中,定义了一些 Field 来与数据库表中的字段类型来进行映射。以下将介绍那些常用的字段类型。 AutoField: 映射到数据库中是 int 类型,可以有自动增长的特性。一般不需要使用这个类型,如果不指定主键,那么模型会自动的生成一个叫做 id 的自动增长的主键。如果 阅读全文
posted @ 2019-01-02 23:56 zheng-weimin 阅读(264) 评论(0) 推荐(0)
摘要:ORM对数据库的增删改查基本操作: 创建模型如下: 基本的增删改查如下: 阅读全文
posted @ 2019-01-02 23:13 zheng-weimin 阅读(217) 评论(0) 推荐(0)
摘要:创建ORM模型: ORM 模型一般都是放在 app 的 models.py 文件中。每个 app 都可以拥有自己的模型。并且如果这个模型想要映射到数据库中,那么这个 app 必须要放在 settings.py 的 INSTALLED_APP 中进行安装。以下是写一个简单的书籍 ORM 模型。示例代码 阅读全文
posted @ 2019-01-02 21:45 zheng-weimin 阅读(282) 评论(0) 推荐(0)
摘要:ORM模型介绍: 随着项目越来越大,采用写原生SQL的方式在代码中会出现大量的SQL语句,那么问题就出现了: 1、SQL语句重复利用率不高,越复杂的SQL语句条件越多,代码越长。会出现很多相近的SQL语句;2、很多SQL语句是在业务逻辑中拼出来的,如果有数据库需要更改,就要去修改这些逻辑,这会很容易 阅读全文
posted @ 2019-01-02 12:51 zheng-weimin 阅读(188) 评论(0) 推荐(0)
摘要:这两节开始做个简单的图书管理系统(基于43节课程学的原生Django使用原生SQL操作): 主要实现如下功能:图书查看(包括详情)、添加和删除: 1、创建一个book_manage工程(使用pycharm创建时,同时创建一个APP——cms),url情况: 2、setting.py中静态文件加载,M 阅读全文
posted @ 2019-01-01 21:51 zheng-weimin 阅读(388) 评论(0) 推荐(0)
摘要:Django使用原生SQL语句操作数据库 Django配置连接数据库: 在操作数据库之前,首先先要连接数据库。这里我们以配置 MySQL 为例来讲解。 Django 连接数据库,不需要单独的创建一个连接对象。只需要在 settings.py 文件中做好数据库相关的配置就可以了。示例代码如下: 在Dj 阅读全文
posted @ 2018-12-30 17:53 zheng-weimin 阅读(1050) 评论(0) 推荐(0)
摘要:MySQL数据库介绍: 在网站开发中,数据库是网站的重要组成部分。只有提供数据库,数据才能够动态的展示,而不是在网页中显示一个静态的页面。数据库有很多,比如有 SQL Server 、 Oracle 、 PostgreSQL 以及 MySQL 等等。 MySQL 由于价格实惠、简单易用、不受平台限制 阅读全文
posted @ 2018-12-29 21:09 zheng-weimin 阅读(186) 评论(0) 推荐(0)
摘要:加载静态文件: 在一个网页中,不仅仅只有一个 html 骨架,还需要 css 样式文件, js 执行文件以及一些图片等。因此在 DTL 中加载静态文件是一个必须要解决的问题。在 DTL 中,使用 static 标签来加载静态文件。要使用 static 标签,首先需要 {% load static % 阅读全文
posted @ 2018-12-28 00:18 zheng-weimin 阅读(175) 评论(0) 推荐(0)