Django 在 Django 之外使用 Django ORM

Django 在 Django 之外使用 Django ORM

在本文中,我们将介绍如何在 Django 之外使用 Django ORM。Django 是一个功能强大的 Web 框架,其对象关系映射(ORM)系统简化了与数据库的交互。虽然 Django 的主要用途是开发 Web 应用程序,但我们也可以单独利用 Django ORM 处理数据库操作。

阅读更多:Django 教程

Django ORM 简介

Django ORM 是 Django 的一部分,它提供了一个高级的 Python API,用于管理数据库。它采用了面向对象的方式,允许我们通过类和对象来操作数据库表。Django ORM 抽象了底层数据库的细节,提供了一种简单和一致的方式让开发者来操作数据。

下面是 Django ORM 的一些核心概念:

模型(Model)

模型是 Django ORM 中的核心组件,它对应数据库表的结构。模型类使用 Python 类来定义,每个属性对应一列数据。Django ORM 会根据模型类自动生成对应的数据库表,并提供了一系列方法用于查询、插入、更新和删除数据。

下面是一个简单的模型类的示例:

from django.db import models

class Person(models.Model):
    name = models.CharField(max_length=50)
    age = models.IntegerField()

查询(Query)

Django ORM 提供了丰富的查询API,允许我们使用简洁的方式编写复杂的查询。我们可以使用过滤器来限制查询结果,使用链式调用方式来进行多个条件的组合,还可以使用关联查询来获取相关联的数据。

下面是一些常见的查询示例:

# 获取所有人的信息
persons = Person.objects.all()

# 获取年龄大于等于18岁的人
adults = Person.objects.filter(age__gte=18)

# 获取名字包含 "John" 的人
johns = Person.objects.filter(name__contains='John')

# 获取年龄大于等于18岁且名字包含 "John" 的人
query = Person.objects.filter(age__gte=18, name__contains='John')

# 获取每个人的名字和年龄
for person in persons:
    print(person.name, person.age)

# 获取每个人的名字和年龄,并按年龄降序排序
sorted_persons = Person.objects.order_by('-age')

插入、更新和删除数据

使用 Django ORM,我们可以轻松地进行数据的插入、更新和删除操作。Django ORM 提供了一系列的方法用于操作数据库。

下面是一些常见的插入、更新和删除数据的示例:

# 插入一条新纪录
person = Person(name='John', age=25)
person.save()

# 更新一条记录
person = Person.objects.get(id=1)
person.age = 30
person.save()

# 删除一条记录
person = Person.objects.get(id=1)
person.delete()

在 Django 之外使用 Django ORM

虽然 Django ORM 是 Django 的一部分,但我们也可以将其独立于 Django 使用。只需按照以下步骤进行设置:

安装 Django

首先,我们需要安装 Django。在终端或命令行中运行以下命令:

pip install django

创建 Django 项目

我们需要创建一个 Django 项目来使用 Django ORM。在终端或命令行中运行以下命令:

django-admin startproject testproject

这将在当前目录下创建一个名为 testproject 的新 Django 项目。

创建 Django 应用

然后,我们需要创建一个 Django 应用程序。在终端或命令行中运行以下命令:

cd testproject
python manage.py startapp testapp

这将在 testproject 目录下创建一个名为 testapp 的新 Django 应用程序。

配置数据库设置

在 Django 项目的 settings.py 文件中,我们需要配置数据库设置。将以下代码添加到 settings.py 文件中:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'database_name',
        'USER': 'username',
        'PASSWORD': 'password',
        'HOST': 'localhost',
        'PORT': '3306',
    }
}

请根据您的数据库配置进行相应的更改。

使用 Django ORM

现在,我们可以在 Django 项目中使用 Django ORM 了。我们可以在 testapp 应用程序的 models.py 文件中定义我们的模型类,并使用 Django ORM 进行数据库操作。

from django.db import models

class Person(models.Model):
    name = models.CharField(max_length=50)
    age = models.IntegerField()

我们还可以在终端或命令行中使用 Django 的命令行工具 manage.py 来进行数据库操作:

python manage.py makemigrations
python manage.py migrate

这将创建数据库表并进行数据库迁移。

示例

接下来,让我们通过一个示例来演示如何在 Django 之外使用 Django ORM。

假设我们已经安装了 Django,并且在 testproject 目录下创建了一个名为 testapp 的应用程序。

首先,在 testapp 应用程序的 models.py 文件中定义一个模型类 Book

from django.db import models

class Book(models.Model):
    title = models.CharField(max_length=100)
    author = models.CharField(max_length=50)
    publication_date = models.DateField()

然后,我们可以在终端或命令行中使用以下代码创建一本新书的记录:

import os
import django

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'settings')
django.setup()

from testapp.models import Book

book = Book(title='The Great Gatsby', author='F. Scott Fitzgerald', publication_date='1925-04-10')
book.save()

我们还可以查询已保存的书籍记录:

books = Book.objects.all()
for book in books:
    print(book.title, book.author, book.publication_date)

总结

本文介绍了如何在 Django 之外使用 Django ORM。我们学习了 Django ORM 的一些核心概念,包括模型、查询和数据操作。通过按照一些简单的步骤进行设置和配置,我们可以在 Django 之外使用 Django ORM,并且编写代码来操作数据库。Django ORM 提供了一个简单和一致的方式来处理数据库,使我们能够更轻松地与数据库交互。希望本文能帮助您理解和使用 Django ORM。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程