如何单独使用Django ORM 在非Django项目中使用Django ORM?

作者:J.sky · 发表于:
2023-06-04T16:15:47.000000Z
· 更新于:
2023-08-13T22:54:57.613618Z
· Tag: Django

在Python中进行一些不是很复杂的数据库操作的时候我们都会选择使用一些ORM框架,主要的ORM框架包括Django ORM、SQLAlchemy、Pony ORM、Peewee和Tortoise ORM等。这里Django ORM在使用方面更为简单和人性化。但是Django ORM和Django的绑定很紧密,如何单独使用Django ORM呢?

安装依赖

如果需要使用Django的ORM必须安装Django的相关依赖:

安装Django

pip install Django

创建Django的项目

django-admin startproject mysite

创建模型

from django.db import models
class Article(models.Model):
    title = models.CharField(max_length=128,verbose_name='文章标题')
    content = models.TextField(verbose_name='文章内容')

配置数据库

一般创建完数据库后会有一个默认的SQLite默认数据库配置

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}

激活模型

定义完模型,首先需要生成相关的数据库和表,然后通过Django的命令行进行调试。

配置文件mysite/settings.py中添加myappmyapp是你的应用名称。

INSTALLED_APPS = [
    'myapp',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

然后,终端下运行:

$ python manage.py makemigrations myapp
Migrations for 'myapp':
myapp/migrations/0001_initial.py
    - Create model Article

继续:

$ python manage.py migrate

这个时候就会生成相关的数据库,当然Django一些自带的项目依赖的数据库也一并创建了。

Python中使用Django ORM

终端下的交互调试这里就不介绍了,说下如何在Python的文件中使用Django ORM。

在manage.py同目录下创建一个测试的Python文件,这里暂时为ORM.py.

ORM.py

import os
import django

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


from myapp.models import *

if __name__ == '__main__':
    art = Article(title="引用测试",content="这里是内容")
    art.save()
    print(art.id)

在非Django项目中使用Django ORM时需要进行的初始化步骤,主要代码就是:

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

首先,os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings') 这行代码将环境变量 DJANGO_SETTINGS_MODULE 的值设置为 'mysite.settings',如果该环境变量已经存在,则不进行任何更改。这个环境变量用于指定 Django 的设置模块,即包含 Django 项目配置的 Python 模块。

接下来,django.setup() 调用用于初始化 Django 的函数。它会根据 DJANGO_SETTINGS_MODULE 环境变量指定的设置模块来加载并配置 Django。这个函数通常在使用 Django ORM 之前被调用,以确保 Django 正确配置和准备就绪。

通过这两行代码,我们设置了 DJANGO_SETTINGS_MODULE 环境变量,并使用 django.setup() 进行初始化,以便在后续的代码中可以使用 Django ORM 或其他 Django 的功能。

运行ORM.py,就可以看到打印出新加入的数据的ID值了。以上就是在非Django项目中使用Django ORM的方法。