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日

相关文章

  • Python使用Django实现博客系统完整版

    下面是关于“Python使用Django实现博客系统完整版”的完整攻略及两条示例说明。 I. Django框架简介 Django是一个Python的开源Web框架,采用了MVT(Model-View-Template)的设计模式,从而使得Web应用的开发更为高效和稳定。通过Django,我们可以快速地构建Web应用,并且Django提供了良好的数据库操作支持…

    Django 2023年5月16日
    00
  • celery在Django项目中的使用案例

    一、逻辑分析 第一步:在项目根目录新建包 第二步:在使用提交异步任务的位置,导入使用即可 视图函数中使用,导入任务任务.delay() # 提交任务 第三步:启动worker,如果有定时任务,启动beat # 启动worker celery -A celery_task worker -l info -P eventlet # 启动beat celery -…

    2023年4月10日
    00
  • 详解django中使用定时任务的方法

    下面我来为您详细讲解“详解Django中使用定时任务的方法”的完整攻略,其中还包括两条示例说明。 什么是Django任务? Django任务是一种自动执行的代码,可以在预定的时间间隔内进行。它们通常被用来处理需要定期执行的任务,例如数据备份、清理和数据分析。 Django任务的基本原理 Django使用Celery和Django-Celery-Beat来实现…

    Django 2023年5月16日
    00
  • DJango的创建和使用详解(默认数据库sqlite3)

    Django的创建和使用详解(默认数据库sqlite3) 简介 Django是一个高层次的Python Web框架,全面支持MVC编程模式。Django的目标是让Web开发更加方便,让开发者可以专注于业务逻辑层面的开发,而无需关心低层次的底层细节。本文将介绍如何创建一个Django项目,并使用默认的sqlite3数据库。 准备工作 在开始创建Django项目…

    Django 2023年5月16日
    00
  • Django获取前端数据的实现方式

    获取前端数据是Django开发中的一个重要部分,下面我将分享Django获取前端数据的几种实现方式。 1. GET请求 在Django中,GET请求是最常见的获取前端数据的方式。GET请求的参数以键值对的形式通过URL传递,由Django框架在视图函数中自动接收并处理。 示例一 通过在URL中添加参数,然后在视图函数中获取参数的值。 例如,在前端页面中点击链…

    Django 2023年5月16日
    00
  • Django学习之路之请求与响应

    针对您提出的问题,本篇回答将主要包括以下几个部分: 理解请求和响应的含义及基本原理; 掌握Django框架中HTTP请求和响应的相关知识; 示例说明,演示Django中请求与响应的实现方法。 1. 请求和响应的含义及基本原理 在Web应用中,浏览器向服务器发送数据,服务器会处理这些数据,然后再返回给浏览器一些数据,这个过程就称为请求和响应。 请求(Reque…

    Django 2023年5月16日
    00
  • 解决django报错:ValueError(“The view Hello.views.login didn’t return an HttpResponse object. It returned None instead.”)

    产生原因:定义的视图函数login,没有返回HttpResponse对象。它返回None。所有导致访问报错 解决:我在访问页面的时候把请求方式搞错了,本来是先获取页面,然后再提交数据。我这里变成直接提交数据了。 改成get,先获取界面在post提交数据: 附带一个启动django服务的脚本: import os def run_server(work_dir…

    Django 2023年4月12日
    00
  • [django]从前端返回字符串,后端转换为字典,执行数据添加操作

    具体如题: js代码如下: $(‘#bill_add’).click(function(){//合同添加 var bill1 = $(“#bill1”).val();var bill2 = $(“#bill2”).val();var bill3 = $(“#bill3”).val();var bill4 = $(“#bill4”).val();var bil…

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