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日

相关文章

  • django,inspectdb,操作已经存在的表

    1.Django附带了一个名为inspectdb程序,它可以通过现有数据库来创建模型,并将相关模型代码另存到指定文件中。在新建的newmodels.py文件中挑选指定表格对应的模型代码,并将其复制到相关的文件中。 1 python manage.py inspectdb > newmodels.py 若要操作指定数据库,使用如下代码: 1 python…

    Django 2023年4月12日
    00
  • Django笔记十八之save函数的继承操作和指定字段更新等实例方法

    本文首发于微信公众号:Hunter后端 原文链接:Django笔记十八之save函数的继承操作和指定字段更新等实例方法 这篇笔记主要介绍 Django 一些实例方法。 什么是 实例,我们知道通过filter() 的一些筛选方法,得到的是 QuerySet,而 QuerySet 取单条数据,通过索引,或者 first() 或者 last() 等方法,得到的单条…

    2023年4月10日
    00
  • Django中使用AJAX的详细过程

    使用AJAX可以使Django的页面之间的交互更为流畅,用户体验也更加友好。下面是使用AJAX在Django中的详细过程: 1. 安装django-ajax 首先,我们需要在Django中安装django-ajax。 pip install django-ajax 2. 修改settings.py文件 在settings.py文件中加入django_ajax…

    Django 2023年5月16日
    00
  • django前端到后端一次简单完整的请求实例

      请求过程: 用户请求—〉django的路由系统—〉根据url不同分发到不同的views函数做对应处理—-〉返回html格式的字符串(需要动态请求的到数据库里面拿到数据迁入到html文件中)   一、django项目初始化 二、配置数据库,生成数据     三、配置url.py文件   四、配置views视图函数:   五、编程html文件: …

    Django 2023年4月12日
    00
  • 总体的Django流程/Form表单/获取前端数据/Django ORM(重要)

    登录功能(示例) 静态文件配置 form表单提交数据后端如何获取 request方法 pycharm连接数据库,Django使用mysql数据库 Django-ORM简介 表字段的增删改查 表数据的增删改查 创建APP 新创建APP时一定要先去settings.py注册 INSTALLED_APPS = [ ‘django.contrib.admin’, ‘…

    Django 2023年4月10日
    00
  • Django日志配置

    Django使用Python内建的logging模块打印日志,配置由四个部分组成 记录器:Logger 处理程序:Handler 过滤器:Filter 格式化:formatter   记录器-Logger Logger为日志系统的入口,每个logger命名都是bucket,可以向bucket写入需要处理的消息 Python定义以及几种日志级别: DEBUG:…

    2023年4月10日
    00
  • django基础知识之Response对象:

    在django.http模块中定义了HttpResponse对象的API HttpRequest对象由Django自动创建,HttpResponse对象由程序员创建 不调用模板,直接返回数据 #coding=utf-8 from django.http import HttpResponse def index(request): return HttpRe…

    Django 2023年4月13日
    00
  • Django自定义Auth模块方式

    Django默认提供了认证系统Auth模块,认证的时候,会使用auth模块里面给提供的表。认证系统包含: 用户管理 权限 用户组 密码哈希系统 用户登录或内容显示的表单和视图 一个可插拔的后台系统 admin Django默认用户的认证机制依赖Session机制,在项目中将引入JWT认证机制,将用户的身份凭据存放在Token中,然后对接Django的认证系统…

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