Django:初识ORM

目录

Object-Relational Mapping,对象关系映射

ORM操作

 创建一个表

第一步,编写类

第二步,注册app

第三步,生成配置文件

第四步,再次添加一个表

第五步,生成表


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 的迁移系统至关重要,因为它确保了数据库结构与应用的模型定义保持同步。

我在下载数据库驱动程序时,各种原因解决不了。很苦恼,终于在下面一文找到解决之道

在pychrm中配置sqlite3环境时下载驱动失败怎么办? - 乐之之 - 博客园 (cnblogs.com)

注意事项

不要手动修改表结构

因为u当你手动修改之后,你修改的仅仅是数据库表结构,而OBM里的配置文件没有被修改,此时如果在对数据库里的数据进行操作,就会报错。

一定要永远保持数据库里面的字段与ORM里面的类一致

 如果你要修改表结构,就在models.py文件里修改,然后再在终端执行python manage.py makemigrations生成修改操作的配置文件,之后再执行python manage.py migrate 提交到数据库进行修改。

本人也处于学习阶段,若有错误与不足请指出。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叫我DPT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值