本文主要介绍Django框架模型的简单介绍和使用,并结合实例分析Django框架模型的概念、原理、使用技巧和相关操作注意事项。有需要的可以参考一下。
本文结合实例介绍了Django框架模型的简单介绍和使用。分享给你,供你参考,如下:
ORM介绍
Orm关系映射对象关系映射
面向对象中的类与数据库表一一对应。通过操作类和对象,可以对数据库表进行添加、删除、检查等操作。不用写SQL语句(orm框架生成)。
Django是实现ORM的框架,在Django项目和数据库之间起到桥梁作用。
使用ORM可以通过方便的配置在不同的数据库之间切换。
使用django开发数据库的步骤如下:
在models.py中定义模型类
生成迁移文件:python manage.py makemigrations
执行迁移生成数据库表(默认为sqlite3数据库,生成的数据库名为db . sqlite3):python manage . py migrate。
通过模型类和对象,可以添加、删除和检查数据。
模型类设计
案例:
班级(部门):
部门名称:名称
部门成立时间:创建日期
类别(员工)
名称:姓名
年龄:年龄
性别:性
薪水:薪水
备注:注释
说明:
在application models.py中编写模型类,
必须继承与models.Model类
。在模型类中,定义属性并生成相应的数据库表字段:
属性=模型。字段类型(字段选项)
类型(为了初步理解,模型包下的类):
字符域字符串
整形外科
BooleanField -布尔型
日期存档日期
十进制浮点
ForeignKey -外键,建立一对多关系。
不需要定义主键id,它会自动生成。
模型类生成表
根据模型类,生成迁移文件。
python manage.py进行迁移
执行迁移文件以生成数据库表。
python manage.py迁移
生成表名的默认格式:
应用程序名称_模型类名小写
使用sqliteman查看生成的数据库表。
安装sqliteman
sudo apt-get安装sqliteman
启动sqliteman
sqliteman
启动后,通过file-open打开项目下的db.sqlite3数据库。
通过ORM操作数据库
Django实现orm功能。在Django项目中,可以直接通过模型类和对象操作数据库数据,而不需要编写sql语句。
您可以进入python交互式环境,通过以下命令执行代码来操作数据库:
python manage.py shell
增删改
您可以通过调用模型类对象的save方法来添加或修改数据。如果id值在数据库表中不存在或为空,则将被添加,否则将被修改。
模型类对象。save() #被添加或修改
调用模型类对象的delete方法删除数据,数据会根据id删除。
模型类对象。delete() #根据对象的id删除。
示例:
来自app01.models导入部门,员工
从日期时间导入日期
d=部门()
D.name= R&D部门
d.create_date=date(2017,1,1)
D.save() # new
人事部
D.save() #修改
直径=10
D.save() # new
D.name= R&D部门
d.id=无
D.save() # new
d.id=无
D.save() # new
D.delete() #删除
模型管理器
每个模型类默认有
objects
类属性,可称为模型管理器
。由django自动生成,类型为django . db . models . manager . manager。员工.对象
django . db . models . manager . manager对象位于0x7fcfcdf67550
对象管理器中提供了一些查询数据的方法:
对象管理器中的方法
返回类型
功能
班级。objects.get()
模型对象
返回一个对象,并且只能有一个:
如果发现多条数据,将会报告一个错误:MultipleObjectsReturned。
如果找不到数据,将会报告一个错误:DoesNotExist。
班级。objects.filter()
查询集
返回满足条件的对象。
班级。objects.all()
查询集
所有返回的对象
关联查询
与部门员工存在一对多关系,
怎么根据部门查员工,或根据员工查询部门呢?
用法:
假设在一对多的关系中,对应的类称为类,多对应的类称为多类:
由一类对象查询多类对象:
一班。多类lowercase _set.all()
由多类对象查询一类对象:
多类对象。关联属性
示例:
#查询部门id为1的所有员工
d=Department.objects.get(id=1)
D.employee_set.all() #再多一个检查
#查询id为1的员工的部门信息。
e=Employee.objects.get(id=1)
e部门#多查一个。
希望本文对基于Django框架的Python编程有所帮助。