上一篇文章我们了解了如何使用模型类创建数据表,这一篇我们就来看看对于创建的表数据,我们如何在Django框架中通过命令进行操作
上一篇文章:一起学Django(肆)——通过模型类创建数据表
一、表数据操作命令
数据操作和MySQL、Oracle中操作是一样的,也是遵循了 “增、删、改、查”,不同的地方是命令的格式。
因为Django中数据库是以类的形式存在的,所以要操作数据之前我们要先实例化模型类对象
(我们需要快速看到执行效果的话,可以在shell窗口进行对应的操作:
python manage.py shell
)
查:get()
使用命令:
类名.objects.get(查询条件[id=1])。
类名.objects.all():返回全部数据,返回值是一个QuerySet对象
类名.objects.filter():返回满足条件的数据,参数可以写查询条件
类名.objects.order_by:对查询结果进行排序,返回值是QuerySet,参数可以写排序的字段
查询主表下关联的所有从表的数据:主表对象名.从表类名_set.all()
查询从表中符合和主表关联的所有数据:主表对象名.从表关联字段名
这里可能很多人执行之后返回值是类的信息,需要直接显示该id的值的话,需要在模型类中添加_ _str_ _()函数,修改返回值为实例属性字段名。如果是直接按照上一篇文章创建的表,那么这里就不用修改,因为在上一篇的模型类代码中已经做过添加
def __str__(self):
return self.hname
改:对象名.属性名
用法:对象名 = 类名.objects.get(查询条件)
增:对象名.属性名
删:对象名.delete()
二、模型类关系
- 一对多,modkes.ForeignKey()
- 多对多 models.ManyToManyField()
- 一对一,models.OntToOneField()
关联查询:
- 通过模型类实现关联查询时,要查哪个表中的数据,就需要通过哪个类来查
- 写关联查询条件的时候,如果类中没有关系属性,条件需要对应类的名,如果类中有关系属性,直接写关系属性
三、元选项
元选项:指定模型类生成的数据表的表名,需要在模型类中创建一个Meta类
方法:在模型类中创建一个Meta类
class Meta:
db_table = ‘自定义表名’