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_name
、your_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进行数据查询操作,可以通过以下方式实现:
- 查询所有数据
Book.objects.all()
- 条件查询
Book.objects.filter(author='小明')
Book.objects.exclude(author='小明')
Book.objects.get(id=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技术站