Django的数据库连接及操作 (django 数据库)

Django 是一款非常流行的 Python web 框架,它提供了一种高效、灵活、易于使用的方式来构建 Web 应用程序。Django 中自带的 ORM(Object-Relational Mapping)工具能够让程序员轻松地创建和管理数据库,而不需要手动写 SQL。在本文中,我们将深入探讨 Django 的数据库连接及操作,介绍如何使用 Django 的 ORM 创建、插入、更新和删除数据等操作。

一、Django 的数据库连接

Django 的 ORM 工具支持多种数据库,包括 PostgreSQL、MySQL、Oracle 和 SQLite 等。Django 的 ORM 工具提供了一个统一的接口,可以在不同的数据库系统之间切换,而且不需要修改任何代码。在配置 Django 框架使用的数据库之前,需要在项目的 settings.py 文件中设置 DATABASES 变量。例如:

“`

DATABASES = {

‘default’: {

‘ENGINE’: ‘django.db.backends.mysql’,

‘NAME’: ‘mydatabase’,

‘USER’: ‘mydatabaseuser’,

‘PASSWORD’: ‘mypassword’,

‘HOST’: ‘localhost’,

‘PORT’: ‘3306’,

}

}

“`

这里我们使用 MySQL 数据库作为例子,其中 ENGINE 变量指定了使用的数据库引擎。 在这个例子中,我们使用 mysql 数据库引擎连接名为 mydatabase 的数据库,连接用户名为 mydatabaseuser,密码为 mypassword,连接地址为 localhost,连接端口为 3306。需要根据实际情况进行修改。

二、Django 的数据库操作

2.1 创建数据库表

Django 的 ORM 工具可以根据 models.py 文件自动创建数据库表。在 models.py 文件中定义的类表现为数据库中的一个表,类中的每个属性对应着数据库表中的一列。Django 还提供了一些字段类型,如 BooleanField、CharField、DateField 等,这些字段可以指定表的列名、数据类型以及其他有用的参数。

例如,我们定义一个名为 Student 的模型类:

“`

from django.db import models

class Student(models.Model):

student_id = models.CharField(max_length=20, unique=True)

name = models.CharField(max_length=50)

age = models.IntegerField()

gender = models.CharField(max_length=10)

grade = models.CharField(max_length=10)

“`

这个模型类对应着一个名为 Student 的数据库表,表中有 student_id、name、age、gender、grade 这 5 个列,每个列的数据类型已在代码中定义。

要在数据库中创建这个表格,需要在控制台中输入以下命令:

“`

python manage.py makemigrations

python manage.py migrate

“`

其中 makemigrations 命令会根据 models.py 文件创建迁移文件,并存储在 migrations 文件夹中;migrate 命令会应用这些迁移文件。

2.2 插入数据

ORM 工具提供了一个 save() 方法,可以将新的数据对象保存到数据库中:

“`

student = Student(student_id=’20230001′, name=’Tom’, age=18, gender=’male’, grade=’2023′)

student.save()

“`

其中 student_id 是该条数据的主键,因此需要设置为唯一。

2.3 更新数据

ORM 工具还提供了一个 update() 方法,用于更新已有的数据:

“`

student = Student.objects.filter(name=’Tom’).first()

student.age = 20

student.save()

“`

这个例子中,我们先使用 filter() 方法获取 name 为 ‘Tom’ 的学生,然后将其 age 属性更新为 20,最后调用 save() 方法保存修改。

2.4 删除数据

ORM 工具提供了一个 delete() 方法,可以删除指定的数据对象:

“`

student = Student.objects.filter(name=’Tom’).first()

student.delete()

“`

这里我们删除了名字为 ‘Tom’ 的学生数据。

2.5 查询数据

ORM 工具提供了丰富的查询方法,如 filter()、exclude()、get()、all() 等等,可以根据不同的条件查询数据。例如:

“`

# 查询全部学生的数据

students = Student.objects.all()

# 查询性别为女性的学生

students = Student.objects.filter(gender=’female’)

# 查询年龄在 18 到 20 之间的学生

students = Student.objects.filter(age__range=(18, 20))

“`

这里使用 filter() 方法查询数据,其中 __range 表示取值范围。返回的结果是一个 QuerySet 对象,可以对其中的数据进行操作。

三、

Django 的 ORM 工具为我们带来了许多便利,可以使用 Python 代码管理和查询数据库,降低了开发复杂 Web 应用的难度。在实际开发中,我们可以从配置数据库连接开始,快速地使用 Django 的 ORM 工具进行数据库操作,提高开发效率。


数据运维技术 » Django的数据库连接及操作 (django 数据库)