前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django学习之旅(六)

Django学习之旅(六)

作者头像
猴哥yuri
发布2018-08-16 15:35:29
1.4K0
发布2018-08-16 15:35:29
举报
文章被收录于专栏:极客猴极客猴

本文是 Django 学习之旅的完结篇,主要是讲述 model 层。model 层是与数据库打交道的,其中包括 怎么连接数据库、怎么对数据库进行增删改查等。主要逻辑代码是写在 models.py 中。

1

新建数据库

Django 支持的数据库有 PostgreSQL 、MySQL、SQLite等,基本上市面上的有的数据库都支持。我是使用 PyCharm 作为开发工具。PyCharm 在新建项目的时候,会自动生成一个 SQLite 数据库。如果你使用 MySQL 数据库,你需要自行创建数据库。我新建一个名为 Django_demo 的项目,在根目录有个名为 db 的 SQLite 数据库。

2

连接数据库

首先打开 PyCharm 软件,点击 PyCharm 的右侧名为 Database 的选项。这时会弹出操作数据库的可视化界面。点击当前选项卡的左上角的“ + ”号 =》Data source =》选择跟你新建数据库时相同的数据库。我新建数据库是选择 Sqlite ,所以选择 Sqlite 连接。

新建连接会弹出一个对话框。我们需要先安装连接数据库驱动包,再填写数据库访问的地址、数据库帐号密码,最后点击"Test conntection"按钮。如果提示"successful",则证明连接数据库成功。

3

创建字段

在 models.py 文件中,我们新建一个实体类,代码如下:

上述代码非常直观。每个模型都用一个类表示,该类继承自 django.db.models.Model。每个模型都有一些类变量,在模型中每个类变量都代表了数据库中的一个字段。

每个字段通过 Field 类的一个实例表示 —— 例如字符字段 CharField 和日期字段 DateTimeField 。这种方法告诉 Django,每个字段中保存着什么类型的数据。更多字段以及含义可以阅读 Django 官方文档。

4

创建表

打开终端,切换目录到 manage.py 所在目录。执行一下两行命令来创建数据库的表。

运行成功的结果如下:

在数据库也会发现我们刚才新建的表

5

插入与查询数据

Author 和 Book 表已经新建成功了。你可能有这样的疑惑。我要怎么往该表插入数据呢?听我慢慢道来。 在 Django 中,一个模型类对应一个数据库的表。因此,一个模型类的实例就表示表中的一条数据。为了输出的数据一目了然,我们需要对上面的 model 进行优化。

当我们在 model.py 对这两个模型类修改完成之后,我们需要通知数据库:“我模型已经修改了,你数据库也要更新呀”。 只需要执行上步的两行命令即可

Django 会对 models.py 进行检测,自动发现需要更改的,应用到数据库中去。

1)创建对象 打开 python 终端,利用命令行来创建一个对象。

看到 <Author: Author object> 意味着成功创建对象,即成功向数据库插入一条数据。

2)查询数据 同样在 python 终端下,执行下面的命令。

3)使用 QuerySet API 查询数据 从数据库中查询出来的结果一般是一个集合,这个集合叫做 QuerySet。而一旦我们建立好数据模型,Django 会自动为我们生成一套数据库抽象的API。这样就大大方便我们创建、检索、更新和删除对象。 假如现在有个需求,我们需要查询数据库中所有的作者并打印出作者的姓名。我们可以利用 QuerySet 支持迭代的特性来进行操作。

QuerySet 还有更加复杂的用法, 利用过滤条件来筛选出数据。

4)使用 QuerySet 创建数据 我们之前创建对象都是通过命令行。但是在生产环境中,显然不能这么操作。那么我们要如何在 py 文件中创建对象呢? QuerySet 创建对象一共有四种办法

方法 A

方法B

方法C

方法D

5)使用 QuerySet 更新数据 A、单个 object 更新, 适合于 .get(), get_or_create(), update_or_create() 等得到的 obj,和新建很类似。

B、批量更新, 适用于 .all() .filter() .exclude() 等后面

6)使用 QuerySet 删除数据 删除的用法跟创建用法是大同小异,在获取结果后面添加 delete() 方法即可。

Django 学习之旅不知不觉到了终点了。终点又是另一个新的起点。我们虽然对 Django 已经有大概的认识,仅仅了解些皮毛,但是还需要深入学习,掌握其精髓。后续我会学习然后分享 Django 一些精髓用法。

作者:猴哥,公众号:极客猴。爱好读书,喜欢钻研技术,梦想成为文艺青年的IT Boy。

- END -

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-06-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 极客猴 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档