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。
极客教程