目录
Object-Relational Mapping,对象关系映射
Object-Relational Mapping,对象关系映射
允许开发者使用Python代码来操作数据库,而不是直接编写SQL语句。ORM提供了一种将数据库表映射为Python对象的方法,使得数据库操作更加直观和方便。
ORM操作
ORM不仅可以操作数据库中的数据,还可以操作表结构。
表:创建表,删除表,修改表
数据:增删改查
创建一个表
ORM的代码通常放在
models.py
文件中。这个文件是Django应用的核心部分,它定义了应用中所有数据模型的结构。在models.py
中,可以创建类来映射数据库中的表,这些类被称为模型(Model)。
第一步,编写类
在app下的models.py中创建表结构
from django.db import models
class UserIfo(models.Model):
name = models.CharField(max_length=16)
age = models.IntegerField()
第二步,注册app
在settings.py的INSTALLED_APPS中注册了你的app,不然这个类是不会自动帮你生成数据库的表
第三步,生成配置文件
python manage.py makemigrations
在终端执行上面的代码,根据这个类,生成一个配置文件(0001_initial.py),这个文件会放在每个app下的migrations文件下
第四步,再次添加一个表
此时,我再创建一个family类,再次执行python manage.py makemigrations语句,会发现在migrations的文件下又创建了一个0002_family.py。
接下来,让我们看看0001_initial.py和0002_family.py,发现002_family.py是依赖于0001_initial.py,说明0002实在0001的基础上进行操作的。
第五步,生成表
在生成表之前,首先要先确定要操作哪个数据库,且数据库的名称和密码。
要在settings的DATABASES中声明。
python manage.py migrate,执行代码会读取已注册的所有app的migration文件并创建修改表
表示执行成功,你的数据库也会被创建(通常会在根目录)。
当你可以看到如图所示的表结构,说明你已经操作成功了。
其中,
django_migrations
是一个特殊的表,它记录了应用中所有已应用的迁移(migrations)。这个表对于 Django 的迁移系统至关重要,因为它确保了数据库结构与应用的模型定义保持同步。
我在下载数据库驱动程序时,各种原因解决不了。很苦恼,终于在下面一文找到解决之道
注意事项
不要手动修改表结构
因为u当你手动修改之后,你修改的仅仅是数据库表结构,而OBM里的配置文件没有被修改,此时如果在对数据库里的数据进行操作,就会报错。
一定要永远保持数据库里面的字段与ORM里面的类一致
如果你要修改表结构,就在models.py文件里修改,然后再在终端执行python manage.py makemigrations生成修改操作的配置文件,之后再执行python manage.py migrate 提交到数据库进行修改。
本人也处于学习阶段,若有错误与不足请指出。