Django+Mysql操作

Django支持多种数据库,包括默认的SQLite3以及MySQL和PostgreSQL等数据库,使用哪一种数据库需要在项目的settings.py中进行进行配置,如果使用默认的SQLite3数据库,这个配置是Django创建项目时已经添加好的。

数据库设置

python3不支持MySQLdb,可用pymysql代替。
在项目文件夹下的_init_.py添加如下代码即可。
Import pymysql

关于项目文件夹下的各个文件,已在上文详细介绍

为一个Django项目配置mysql数据库,在项目的settings.py中配置,在这个配置文
件中,数据库配置相关如下:

例如我们已经有了一个数据库:djangoday17
在这里插入图片描述
可以看到,Django中默认数据库是sqlite3,如果配置为mysql,只需在DATABASE中配置即可
在这里插入图片描述

迁移数据库

Django中通过以下命令来迁移数据库,在每次创建Model时,执行该命令,
在数据库中生成对应的表:
$ python manage.py makemigrations
$ python manage.py migrate


接下来,我们编写模型文件(models.py)的代码。
这里值得一提的是,在更换数据库时,“models.py”中的代码不用做任何更改,只需要在
“settings.py”文件中更改数据库的配置。
创建数据表的流程一共3步:
	1.模型文件(models.py)中编写数据表所对应的类;
	2.通过“manage.py”的“makemigrations”命令创建迁移项;
	3.通过“manage.py”的“migrate”命令创进行迁移。
也就是说,我们在模型文件(models.py)中创建了数据表对应的类,剩下的工作都是
通过“manage.py”的命令,让Django自动去执行。

编写模型文件(models.py

假设我们创建一个商品信息表。
模型文件(models.py)中,需要创建类以及类的属性(变量),实际上类名对应的是
数据库的表名,而属性(变量)对应的是数据表的列(字段)。

在这里插入图片描述

	在上方代码中,我们创建了一些不同类型的字段的对象,包括字符串类型(CharField)、
	整数类型(IntegerField)和浮点数类型(FloatField)。
	比较常见的参数有几种:
		max_length:该字段最大字符数量限制。
		null :如果为True,则该字段默认为null值。
		blank :如果为True,则该字段可以为空值。
		default :该字段的默认值。
		primary_key :该字段设置为主键。
		unique:该字段的值必须是当前数据列中唯一的。
		choices:该字段的值为二元数组或列表,例如:((1,2),(a,b))。
		当我们编写完模型文件(models.py),接下来就可以进行数据迁移,
		将模型文件(models.py)中的数据迁移到数据库。

创建迁移项与执行迁移操作

在创建迁移项之前,我们需要先在全局配置文件(settings.py)中,将当前应用添加到“INSTALLED_APPS”列表。
在这里插入图片描述
然后,在命令行终端中,通过命令创建迁移项。
在这里插入图片描述
接下来,我们再通过“migrate”命令进行数据迁移操作。
在这里插入图片描述

当我们完成以上步骤,在数据库中就会出现一个名为“MySite_goods”(应用名称_小
写类名)的数据表。
不过,在创建数据表的时候,我们可能会遇到这两种情况:
“models.py”模块中的类遗漏了某个字段或者某个字段觉得没有用了;
“models.py”模块中,类的某个字段写错了类型或者参数。
当发生这样的情况,创建的数据表就不符合要求,而不能正常使用,我们必须修改表
的结构,或者更改字段的设置。

通过类进行数据操作

先导入模型文件(models.py)中的类:from MySite.models import Goods
添加数据有两种方式,我们分别演示。

第一种:通过create()方法添加。
在这里插入图片描述

第二种:通过save()方法添加。
在这里插入图片描述
或者使用另外一种写入参数的方式。
在这里插入图片描述

查询数据

查询数据我们可以使用下列语句。
在这里插入图片描述
通过all()方法,能够获取数据库中所有的数据对象。
通过values()方法,能够看到数据库中所有数据的值。

在这里插入图片描述

最基本的Django + Mysql已经介绍结束,列外还有多表的联查会在后面推出

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值