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

yizhihongxing

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 QuerySet查询API攻略

    Django QuerySet是Django框架的核心组件之一,它是以ORM的方式提供对数据库的访问和操作的API。Django QuerySet查询API提供了丰富的查询选项,可以灵活地进行数据筛选、排序、分页等操作。 本文将从Django QuerySet查询API的基础知识开始,一步步介绍其中的各项功能,并提供详细的代码示例,帮助读者更加深入地理解和掌…

    Django 2023年3月12日
    00
  • python面试题-django相关

    1、中间件 中间件一般做认证或批量请求处理,django中的中间件,其实是一个类,在请求和结束后,django会根据自己的规则在合适的时机执行中间件中相应的方法, 如请求过来 执行process_request, view,process_response方法     2、Django、Tornado、Flask各自的优势 Django:Django无soc…

    Django 2023年4月13日
    00
  • Python中DJANGO简单测试实例

    下面是详细讲解“Python中DJANGO简单测试实例”的完整攻略。 1. 简介 Django是一个高级Web框架,它基于Python语言构建。Django的官方文档提供很好的入门教程,但是这些教程在实践中可能会遇到一些问题。本文将提供一个更详细的DJANGO简单测试实例教程,其中包含了两个示例,可以帮助你更好地入门Django。 2. 示例一 2.1 创建…

    Django 2023年5月16日
    00
  • 【开源】最近写了一个简单的网址导航网站

    前言 随着团队的成长,要管理的项目或使用的内部系统越来越多,很多内部系统都没有域名,使用IP+端口,很难记。 为了解决这个痛点,我抽空写了个导航网站~ 目前用下来效果还不错,可以基本完美的解决这个问题。 项目名称是 SiteDirectory ,代码在 Github 开源了: https://github.com/Deali-Axy/SiteDirector…

    2023年4月10日
    00
  • 文成小盆友python-num17 - django基础

    一、首先了解web应用的本质 对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端。 下面利用socket实现一个简单的web框架: #!/usr/bin/env python #coding:utf-8 import socket def handle_request(client): buf = clie…

    2023年4月9日
    00
  • Python – Django – ORM Django 终端打印 SQL 语句

    在 settings.py 中添加以下内容: LOGGING = { ‘version’: 1, ‘disable_existing_loggers’: False, ‘handlers’: { ‘console’:{ ‘level’:’DEBUG’, ‘class’:’logging.StreamHandler’, }, }, ‘loggers’: { ‘…

    Django 2023年4月10日
    00
  • 基于Django的Admin后台实现定制简单监控页

    基于Django的Admin后台可以实现简单监控页,下面我将详细讲解如何实现。 准备工作 首先,需要在Django项目中创建一个app,用于管理监控页相关功能。在app目录下创建一个名为admin_dashboards的app。 添加监控模型 在admin_dashboards目录下打开models.py文件,定义一个监控模型用于存储需要监控的数据。 示例代…

    Django 2023年5月16日
    00
  • Python Django 开发 3 数据库CURD

    上一篇表建好后开始对数据进行CURD操作 dos输入: >>>python manage.py shell 以下的命令都是在shell中测试 (C)增: 1 >>>import myLesson import Blog 2 >>>b = Blog(name = ‘Frist Blog’, tagline …

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