Django-Model数据库操作(增删改查、连表结构)详解

Django-Model数据库操作详解

简介

Django中使用Model驱动的ORM技术进行数据库操作,使得操作数据库更加便捷、高效。本文将详细讲解Django-Model数据库操作中增删改查和连表结构的相关知识点。

安装

在开始使用Django-Model进行数据库操作前,需要先安装Django框架。如果您还没有安装Django,可以按照以下命令进行安装:

pip install Django

连接数据库

在开始进行数据库操作前,需要先进行数据库连接配置。打开项目中的settings.py文件,进行以下配置:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'your_database_name',
        'USER': 'your_database_username',
        'PASSWORD': 'your_database_password',
        'HOST': '127.0.0.1',
        'PORT': '3306',
    }
}

需要将your_database_nameyour_database_username以及your_database_password替换为您自己的数据库名、用户名和密码。

增删改查

使用Django-Model进行数据库操作,常用的操作包括增、删、改、查。

首先需要定义一个模型类来映射数据库表结构,例如:

from django.db import models

class Book(models.Model):
    id = models.AutoField(primary_key=True)
    title = models.CharField(max_length=50)
    author = models.CharField(max_length=20)
    publish_date = models.DateField()
    price = models.DecimalField(max_digits=8, decimal_places=2)

然后在代码中创建Book对象并调用save()方法即可进行数据插入操作,例如:

book = Book(title='Python入门', author='小明', publish_date='2022-01-01', price=29.99)
book.save()

使用Django-Model进行数据删除操作,可以通过对象的delete()方法实现。例如:

book = Book.objects.get(id=1)
book.delete()

使用Django-Model进行数据修改操作,可以通过获取对象并修改对象的属性值,然后调用save()方法实现。例如:

book = Book.objects.get(id=1)
book.price = 39.99
book.save()

使用Django-Model进行数据查询操作,可以通过以下方式实现:

  1. 查询所有数据
Book.objects.all()
  1. 条件查询
Book.objects.filter(author='小明')
Book.objects.exclude(author='小明')
Book.objects.get(id=1)
  1. 聚合查询
from django.db.models import Sum, Avg, Count, Max, Min

Book.objects.aggregate(Sum('price'))
Book.objects.aggregate(Avg('price'))
Book.objects.aggregate(Count('title'))
Book.objects.aggregate(Max('price'))
Book.objects.aggregate(Min('price'))

连表结构

在Django-Model中进行多表关联查询时,需要定义外键来建立多表之间的关联。例如:

class Author(models.Model):
    id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=20)
    age = models.IntegerField()

class Book(models.Model):
    id = models.AutoField(primary_key=True)
    title = models.CharField(max_length=50)
    author = models.ForeignKey(Author, on_delete=models.CASCADE)
    publish_date = models.DateField()
    price = models.DecimalField(max_digits=8, decimal_places=2)

以上示例中,Book模型类使用ForeignKey来建立与Author模型类的关联。

在进行多表关联查询时,使用Django-Model提供的相关方法即可实现。例如:

# 查询某一作者的所有书籍
books = Book.objects.filter(author__name='小明')

# 查询某一书籍的作者
book = Book.objects.get(title='Python入门')
author = book.author

更多多表关联查询方法,请参考Django-Model官方文档。

本文已经简单介绍了Django-Model的数据库操作相关知识点,包括增删改查和连表结构的相关说明。通过本文对Django-Model的学习,相信您已经可以熟练地进行常见的数据库操作了。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Django-Model数据库操作(增删改查、连表结构)详解 - Python技术站

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

相关文章

  • 在pycharm中创建django项目的示例代码

    在 PyCharm 中创建 Django 项目的示例代码 在 PyCharm 中创建 Django 项目非常简单。以下是在 PyCharm 中创建 Django 项目的示例代码: 步骤一:创建 Django 项目 在 PyCharm 中,我们可以使用 Django 模板来创建 Django 项目。以下是创建 Django 项目的步骤: 打开 PyCharm,…

    Django 2023年5月17日
    00
  • django 开发之给admin 模块添加富文本编辑器

    第一步下载kindeditor  http://kindeditor.net/demo.php 下载下来后放到静态文件static 下面的js下面   接着在admin 模块文章类下引入这富文本编辑器: class ArticleAdmin(admin.ModelAdmin): 下面   接着添加一个文件名字为config.js  添加一些配置  

    2023年4月9日
    00
  • Django——-Model操作

      1.字段列表 from django.bd import models AutoField(Field)   int自增列,必须有参数primary_key=True   class UserInfo(models.Model):      username=moadels.charField(max_length=32) BigAutoField(Au…

    Django 2023年4月10日
    00
  • django基础知识之GET属性:

    QueryDict类型的对象 包含get请求方式的所有参数 与url请求地址中的参数对应,位于?后面 参数的格式是键值对,如key1=value1 多个参数之间,使用&连接,如key1=value1&key2=value2 键是开发人员定下来的,值是可变的 示例如下 创建视图getTest1用于定义链接,getTest2用于接收一键一值,ge…

    Django 2023年4月12日
    00
  • django+Python数据库利用Echarts实现网页动态数据显示

    这几天一直在思考前端——服务器——数据库的之间的数据交互,最后决定了用django来做,为什么呢?因为我这只是在开发阶段,所以就用了django自带的web服务器(很方便)而且呢,它还自带了数据库sqllite3(好吧,本来要用mysql 的,但是平台测试接入尾声,docker都停掉了,而mysql在docker里面)这个数据库和mysql操作的django…

    2023年4月10日
    00
  • Django权限机制实现代码详解

    下面是对“Django权限机制实现代码详解”的完整攻略,包括两个示例说明。 一、Django权限机制的概述 Django的权限机制允许开发者对不同用户(或用户组)授予不同的权限,以实现对应用程序访问的控制。Django自带的权限系统非常强大,能够满足大多数应用场景的要求。 在Django中实现权限控制需要掌握以下几个概念: 用户(User):指使用应用程序的…

    Django 2023年5月16日
    00
  • django:查询,反向查询

    先看模型: 大的分类(主表) class Category(models.Model): name = models.CharField(max_length=20, null=True) 小的分类(子表) class SmartCategory(models.Model): name = models.CharField(max_length=20, nu…

    Django 2023年4月13日
    00
  • Django笔记二十之手动编写migration文件

    本文首发于公众号:Hunter后端原文链接:Django笔记二十之手动编写migration文件 前面介绍过,migration 文件主要记录的是 Django 系统 model 的变化,然后通过 migrate 命令将变化适配到数据库中。 比如在某个 application 下新增了某张表,或者对某张表更改了字段,可以生成 migration 文件,然后通…

    2023年4月10日
    00
合作推广
合作推广
分享本页
返回顶部