Django开发操作数据库更简单,内部提供了ORM框架。
一、安装依赖
Django操作数据库,使用第三方库mysqlclient 安装命令 pip install mysqlclient (等价于pymysql)
如果windows使用pip安装失败的话可以下载mysqlclient whl包
二、orm创建数据库
orm可以帮助我们做两件事:
1.创建、修改、删除数据库的表(不用写sql,但注意只能创建表,不能创建数据库)
2.操作表中的数据
创建数据库:
可以使用终端,利用sql创建数据库,更方便使用navicate等工具
create database ....
Django连接数据库
在settings里面配置数据库:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'day15',
'USER': 'root',
'PASSWORD': 123456,
'HOST': '127.0.0.1',
'PORT': '3306'
}
}
如果使用django模板里面的sqlite时,配置文件如下:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': 'django001.db',
}
}
Django操作数据库表
在models.py中:
class UserInfo(models.Model):
name = models.CharField(max_length=32)
password = models.CharField(max_length=64)
age = models.IntegerField()
"""
create table app01_userinfo(
id bigint auto_increment primary key,
name varchar(32),
password varchar(64),
age int
)
"""
这段话来自于官方文档:
迁移是非常强大的功能,它能让你在开发过程中持续的改变数据库结构而不需要重新删除和创建表 - 它专注于使数据库平滑升级而不会丢失数据。我们会在后面的教程中更加深入的学习这部分内容,现在,你只需要记住,改变模型需要这三步:
- 编辑
models.py
文件,改变模型。- 运行 python manage.py makemigrations 为模型的改变生成迁移文件。
- 运行 python manage.py migrate 来应用数据库迁移。
在终端命令窗口输入此命令:
python manage.py makemigrations
python manage.py migrate
自动生成对应的数据库表:
如果需要新增表:
直接在models.py中写入响应的模型,然后重新输入命令。
修改表结构操作一样
注意:
1.创建表的前提是改app已经注册
2.当对已有的表增加新字段时,可能遇到一些问题,解决方法允许该字段可以为空
data_str = models.IntegerField(null=True,blank=True)
给该字段添加默认值
new_str = models.IntegerField(default=2)
三、orm增删改查
在数据库中新增信息
models.UserInfo.objects.create(name="张三", password="123456", age=18)
删除数据
# 根据id删除
models.UserInfo.objects.filter(id = 1).delete()
# 全部删除
models.UserInfo.objects.all().delete()
查询数据(可以通过遍历对象获取数据)
# 获取所有数据 但是结果为queryset类型的--其实就是对象列表
models.UserInfo.objects.all()
for obj in data_list:
print(obj.id,obj.name,obj.password,obj.age)
# 获取id等于1的数据,结果是一个对象
models.UserInfo.objects.filter(id = 1).first()