django模型层(model)进行建表、查询与删除的基础教程

下面是“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技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • Django 2.1 配sql server 2008R2

     请教了不少高手和度娘终于把这个事搞定了(基本上断断续续查试了2周时间),,,,,,,, 环境:  1-Microsoft Windows     2-Microsoft SQL SERVER2008R2      3-python3.7     4-Django-2.1     5-pycharm-18-1 配置:  1.新建django项目时一定要钩选如…

    2023年4月10日
    00
  • Django中的Model操作表的实现

    下面是 Django 中 Model 操作表的实现的攻略: 1. 创建 Model 首先,需要创建一个 Model 类。在 Django 中,每个 Model 类都需要继承自 django.db.models.Model。下面是一个简单的示例: from django.db import models class Book(models.Model): ti…

    Django 2023年5月15日
    00
  • Django中ORM的基本使用教程

    下面我会详细讲解Django中ORM的基本使用教程和两个示例。 ORM简介 ORM全称是Object-Relational Mapping,即对象关系映射,它是一种程序设计技术,用于实现面向对象程序语言与关系数据库之间的映射。在ORM中,每一个数据表映射为一个类,每一条记录映射为类的一个实例。 在Django中,ORM支持各种关系型数据库,如MySQL、Po…

    Django 2023年5月16日
    00
  • Django基于Models定制Admin后台实现过程解析

    下面我将详细讲解 “Django基于Models定制Admin后台实现过程解析”的完整攻略。在实现过程中,我们将使用两个示例来说明。 1. 简介 Django是一款使用Python语言编写的开源Web框架,其主要目的是快速开发可维护的Web应用程序。Django提供了一组工具和库,使得开发Web应用程序变得简单和高效。其中之一就是Django Admin,它…

    Django 2023年5月16日
    00
  • 简单聊一下Uwsgi和Django的爱恨情仇

    项目目录:/root/app Uwsgi的配置文件 [uwsgi] # Python扩展包安装的地方 pythonpath=/usr/local/src/python3/lib/python3.5/site-packages # Django根目录 chdir=/root/app # wsgi.py跟根目录的相对路径 wsgi-file=app/wsgi.p…

    Django 2023年4月10日
    00
  • Django(六)模型(model)系统 — 常用查询语法及进阶

    必知必会13条 <1> all(): 查询所有结果 <2> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象 <3> get(**kwargs): 返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者没有都会抛出错误。 <4> exclude(**kwa…

    Django 2023年4月11日
    00
  • Django为什么要跳转到不同的页面来实现不同的功能

        其实是不同将信息提交给不同的页面交给不同的页面去处理同一个数据库,不同的模块实现不同的功能,当要实现某一个功能的时候直接跳转到那一个功能下面的url,可以把要实现的功能区分开,以python面向对象的思维去进行处理,把不同的功能看做是不同的对象,跳转到不同的url可以实现对不同的模块功能的处理,把要实现的功能都看作是一个对象。 等于跳转到的url传递…

    Django 2023年4月12日
    00
  • django query模块

    Django中的query模块是用于与数据库进行交互的API。它提供了一个组合查询表单的方式,可以使用查询表达式、筛选条件和聚集函数等操作数据。下面是使用query模块的完整攻略,并包含两条示例说明。 1. 查询操作 使用query模块,我们可以使用方法.objects获取数据表中的记录并进行筛选。下面举例说明: 1.1. 获取所有记录 from youra…

    Django 2023年5月16日
    00
合作推广
合作推广
分享本页
返回顶部