下面是“django模型层(model)进行建表、查询与删除的基础教程”的攻略:
什么是Django模型层
Django模型层,又称为ORM(Object Relational Mapping,对象关系映射),是Django的核心组件之一。它可以让我们不需要编写SQL语句就能与数据库进行交互。在模型层中,我们可以定义数据表、字段、数据类型、索引等信息,这些信息都直接反映在真实的数据库中。
建表
要在Django中使用模型层,首先需要在models.py文件中定义一个模型类。例如,我们要定义一个名为Student的模型类,可以如下定义:
from django.db import models
class Student(models.Model):
name = models.CharField(max_length=20, verbose_name='姓名')
age = models.IntegerField(verbose_name='年龄')
gender = models.CharField(max_length=10, verbose_name='性别')
class_name = models.CharField(max_length=20, verbose_name='班级名称')
create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
def __str__(self):
return self.name
上面代码中,我们使用models.Model类来继承Student类,表示Student类是一个模型类。接下来,我们定义了Student模型类的几个字段:name、age、gender、class_name、create_time。其中,各字段的含义可以看字段名,比如name字段是CharField类型,最大长度为20。每个字段都可以定义verbose_name属性,表示该字段的中文名称。
定义完模型类后,我们需要用以下命令来生成数据表:
python manage.py makemigrations
python manage.py migrate
执行完上面两个命令后,在数据库中就会自动生成一个名为student的表,里面包含了我们定义的各个字段信息。
查询
在Django模型层中,查询数据有常用的两种方法:all()和get()。
- all()方法:返回指定模型类下的所有数据。
例如,我们要查询Student模型类下的所有数据,可以使用以下代码:
students = Student.objects.all()
- get()方法:返回指定条件下的一条数据,如果匹配多条数据或未匹配到数据,将会抛出异常。
例如,我们要查询Student模型类下名字为“张三”的学生数据,可以使用以下代码:
student = Student.objects.get(name='张三')
需要注意的是,get()方法必须满足条件唯一,否则会抛出MultipleObjectsReturned或DoesNotExist异常。
删除
在Django模型层中,删除数据使用delete()方法。
例如,我们要删除Student模型类下名字为“张三”的数据,可以使用以下代码:
Student.objects.filter(name='张三').delete()
上面代码中,我们使用filter()方法进行过滤,返回一个QuerySet对象,然后调用delete()方法删除过滤后的所有数据。
示例
我们来看一个完整的例子,首先定义一个模型类:
from django.db import models
class Book(models.Model):
title = models.CharField(max_length=50, verbose_name='书名')
author = models.CharField(max_length=20, verbose_name='作者')
publish_date = models.DateField(verbose_name='出版日期')
price = models.DecimalField(max_digits=5, decimal_places=2, verbose_name='价格')
category = models.CharField(max_length=20, verbose_name='分类')
description = models.TextField(verbose_name='简介')
接下来,执行以下命令生成数据表:
python manage.py makemigrations
python manage.py migrate
然后我们可以进行CRUD操作:
# 创建一本新书
book = Book(title='Python基础教程', author='小明', publish_date='2020-11-01', price=68.50, category='计算机', description='本书是全面介绍Python编程语言的优秀教材。')
book.save()
# 查询所有书籍
books = Book.objects.all()
# 条件查询符合条件的书籍
book = Book.objects.get(title='Python基础教程')
# 修改书籍的价格
book.price = 78.50
book.save()
# 删除书籍
Book.objects.filter(title='Python基础教程').delete()
上面的代码中,我们通过save()保存了新书,使用all()查询了所有书籍,使用get()查询符合条件的书籍,使用delete()删除符合条件的书籍。同时也对查询到的书籍信息进行了修改和保存操作。
以上就是“django模型层(model)进行建表、查询与删除的基础教程”的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:django模型层(model)进行建表、查询与删除的基础教程 - Python技术站