我们之前操作数据库是通过写sql语句,那么能不能不写sql语句就可以操作数据库呢? 可以,就是通过接下来要给大家讲的ORM框架。
ORM框架
O是object,也就类对象的意思,R是relation,翻译成中文是关系,也就是关系数据库中数据表的意思,M是mapping,是映射的意思。在ORM框架中,它帮我们把类和数据表进行了一个映射,可以让我们通过类和类对象就能操作它所对应的表格中的数据。ORM框架还有一个功能,它可以根据我们设计的类自动帮我们生成数据库中的表格,省去了我们自己建表的过程。
django中内嵌了ORM框架,不需要直接面向数据库编程,而是定义模型类,通过模型类和对象完成数据表的增删改查操作。
使用django进行数据库开发的步骤如下:
1.在models.py中定义模型类
2.迁移
3.通过类和对象完成数据增删改查操作
1.创建django项目
见上一个博客
2.在pycharm打开创建的django项目
进入项目的models.py 在models.py设计表对应的类 模型类
#设计和表对赢的数据
# Create your models here.
#图书lei
from django.db import models
#图书类
class BookInfo(models.Model): #继承自模型类
"图书模型类"
#charfiled 说明是一个字符串 maxlence最大长度
btitle=models.CharField(max_length=20)
#datefiled说明是一个日期类型
bpub_date=models.DateField()
3.生成迁移文件
类写好后,在控制台 进入项目目录,通过
Python manage.py makemigration
的命令生成迁移文件
4. 在数据库中生成对应的表文件
Python manage.py migrate
ate
生成后可以在项目目录下多了个db.sqlite3文件
4.安装sqlliteman查看数据库的变化
sudo apt-get install sqliteman
5.打开sqliteman
在命令行输入sqliteman
直接打开sqliteman软件,打开db.sqlite3文件,其中生成了一个表,
bookest_bookinfo 这个表是由应用名_类名构成
可以发现表的字段和bookinfo的字段名对应
6,生成指定的表名和字段名
前面我们使用模型类时定义完模型类,之后再生成迁移文件,之后就会自动在数据库由应用名_类名
构成表,和相对应的字段名,可是如果我们想指定生成的表名和字段名怎么办呢?
在设置类的属性时使用db_column="字段名"
进行指定字段名
class BookInfo(models.Model): #继承自模型类
"图书模型类"
#charfiled 说明是一个字符串 maxlence最大长度
btitle=models.CharField(max_length=20,db_column = "title")
#datefiled说明是一个日期类型
bpub_date=models.DateField()
在上面的模型类中,我们使用db_column = “title”,指定的生成的列名为title,就不再是自动生成的title名
class BookInfo(models.Model): #继承自模型类
"图书模型类"
#charfiled 说明是一个字符串 maxlence最大长度
btitle=models.CharField(max_length=20,db_column = "title")
#datefiled说明是一个日期类型
bpub_date=models.DateField()
class Meta :
db_table = "Bookinfo"
在上面我们使用db_table = "Bookinfo"
属性,就使生成的表名为bookinfo2,不再是booktest_bookinfo