settings.py数据库配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', #mysql为可更改项,修改所用数据库替换这个值即可
'NAME': 'polls', #数据库名,需要先创建:create databases polls;
'USER': 'root', #用户名
'PASSWORD': '123456', #密码
'HOST': '127.0.0.1', #主机地址
'PORT': '3306', #端口
}
}
数据迁移
迁移是非常强大的功能,它能让你在开发过程中持续的改变数据库结构而不需要重新删除和创建表 - 它专注于使数据库平滑升级而不会丢失数据
1.修改models.py中模型,改变或添加数据结构(此时数据库中无数据)
- 设计表结构
- 在models.py中输入
2.运行 python manage.py makemigrations 为模型的改变生成迁移文件。

-
执行后在migrations目录下生成迁移文件,文件内容大致如下


-
此时数据库中依然无新表生成
3.运行 python manage.py migrate 来应用数据库迁移。
- 此时数据库中有新增表

数据添加
-
执行python manage.py shell 进入python shell
-
引入包
> from 应用名.models import 类名 > from polls.models import Grades,Students > from django.utils import timezone > from datetime import * -
查询所有数据
类名.objects.all() -
添加数据
> 创建一个模型类的对象 > a = 类名() > a.字段1 = "a1" > a.字段2 = "a2" > a.save() > *##注意:没有执行save(),数据不会存到数据库中,执行save()后,数据才能存到数据库中*
5.插入数据后查看全部数据,显示为一条数据,但无法看到具体数据

- 此时需要在models.py对应类中添加一条数据

- 添加后重启python shell,重新导入包,查看数据,此时可以看到具体数据

-
修改数据
> 模型对象.属性=新值 > --修改完成后需要save() ``` -
删除数据
> 模型数据.delete() > --删除后数据库中也直接删除 -
关联关系
-
模型对象.类名_set.al()
>>> gra1.students_set.all() <QuerySet [<Students: xiaoming>]> -
直接添加数据库
stu3=gra1.students_set.create(sname=u'dada',sage=21,sgender=u'男',scontend=u'kkkkkkk')
定义模型
class Grades(models.Model):
........
.......
#定义数据库表名和排序
class Meta:
db_table = "grades"
ordering = ['id'] #降序排序['-id']
自定义管理Manager类
**models.py**
class StudentManager(models.Manager):
def get_query(self):
return super(StudentManager, self).get_query().filter(isDelete=False)
class Students(models.Model):
stuObj = models.Manager()
stuObj1 = StudentManager()
.....
....
查询结果
>>> Students.stuObj.all()
<QuerySet [<Students: a-12-sssssssss>, <Students: b-15-sdefd>, <Students: c-16-btr>, <Students: d-17-safe>, <Students: xiaohong-17-ndksnflsn>]>
本文介绍了Django中如何进行数据库迁移,包括修改models.py、使用makemigrations和migrate命令创建和应用迁移,以及如何添加、查询、修改和删除数据。同时,文章提到了关联关系的处理和自定义管理器的使用。
-- 改变数据模型,添加数据&spm=1001.2101.3001.5002&articleId=88170740&d=1&t=3&u=2beaaf0d64d24cafa918d1c48ffb65ac)
1362

被折叠的 条评论
为什么被折叠?



