关键词

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的学习,相信您已经可以熟练地进行常见的数据库操作了。

本文链接:http://task.lmcjl.com/news/16057.html

展开阅读全文