在Python中进行一些不是很复杂的数据库操作的时候我们都会选择使用一些ORM框架,主要的ORM框架包括Django ORM、SQLAlchemy、Pony ORM、Peewee和Tortoise ORM等。这里Django ORM在使用方面更为简单和人性化。但是Django ORM和Django的绑定很紧密,如何单独使用Django ORM呢?
如果需要使用Django的ORM必须安装Django的相关依赖:
pip install 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中添加myapp
,myapp
是你的应用名称。
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。
在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的方法。