Django——1.ORM对象关系映射之创建模型

对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。

准备工作:创建项目

在终端中输入:django-admin startapp Item_2  

打开项目目录下的setting.py文件,找到INSTALLED_APPS,在里面添加上Item_2。

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'Item_2',
]

创建模型

我们主要是在应用项目Item_2下的models.py文件下建立的。

在models.py文件中定义一个Card类

创建类

class Card(models.Model):
    name=models.CharField(max_length=25)  #定义name为CharField类型(相当于字符串类型)长度不超过25
    msg=models.TextField()  #msg为TextField类型,长度可以不用写,是很长的
    rating=models.IntegerField(default=0) #rating为IntegerField类型(相当于整型)从0开始

我们定义的这3个类会通过orm对应在mysql中形成一个表格,里面有3个字段。

迁移操作

在终端中输入:

python .\manage.py makemigrations    # 生成迁移对象

Django——1.ORM对象关系映射之创建模型_第1张图片

python .\manage.py migrate   #在进行迁移

在数据库中展示

在打开mysql,登录即可查看,我们创建的表格。

登录用户:mysql -uyyy -p    #yyy是用户名

输入你的密码:

展示数据库:show databases;

进入数据库:use 数据库的名字;

查看数据库中的表:show tables;   #看到系统自动给我们创建了一个以项目+类名为名的表Item_2_card。

Django——1.ORM对象关系映射之创建模型_第2张图片

查看表的结构:desc  表名;

Django——1.ORM对象关系映射之创建模型_第3张图片

可看出表中有我们创建的三个字段,其中id是系统自动给予的。

则我们可看出orm可以将面向对象映射到数据库中。(在类中定义的变量--转换到数据库中--形成对应字段的表格)

修改表的名字

在定义的Card类下面,在定义一个Meta类,通过db_table对命名

Django——1.ORM对象关系映射之创建模型_第4张图片

应为对其修改了名字,所以要重新对其迁移

在终端中输入:

python .\manage.py makemigrations 

python .\manage.py migrate

在mysql中查看表

Django——1.ORM对象关系映射之创建模型_第5张图片

查看ITEM_2_CARD表的结构

Django——1.ORM对象关系映射之创建模型_第6张图片

shell

在终端中输入:

python manage.py shell

from Item_2.models import Card  #在引入Card

card=Card(name='abc_1',msg='hello,我是abc_1',rating=26)   #现在表格中添加一些数据,

card.save()   #不要忘记,将其保存下来

打开mysql,查看表中的信息:

select * from ITEM_2_CARD;

Django——1.ORM对象关系映射之创建模型_第7张图片

可看到我们添加的信息。

__str__

我们也可以在终端中查看到信息

在终端中输入:

Card.objects.all()

Django——1.ORM对象关系映射之创建模型_第8张图片

则可看到,我们拿到的是一个对象。

我们可以在Card类里面定义一个__str__的函数

Django——1.ORM对象关系映射之创建模型_第9张图片

注意:__str__不需要迁移

要重新退出,重新进入shell

在终端中输入:

exit()    #退出

python .\manage.py shell

from Item_2.models import Card

Card.objects.all()

则我们可以看到返回了msg的信息。

你可能感兴趣的:(django,数据库,python)