惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The GitHub Blog
The GitHub Blog
阮一峰的网络日志
阮一峰的网络日志
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Apple Machine Learning Research
Apple Machine Learning Research
小众软件
小众软件
博客园 - 司徒正美
Last Week in AI
Last Week in AI
爱范儿
爱范儿
罗磊的独立博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园_首页
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The Cloudflare Blog
雷峰网
雷峰网
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
WordPress大学
WordPress大学
Jina AI
Jina AI
人人都是产品经理
人人都是产品经理
量子位
V
V2EX
博客园 - 叶小钗
宝玉的分享
宝玉的分享
T
Tailwind CSS Blog

碎言

不懂就别瞎掰掰:【程序员的常识】写的什么玩意? AI 辅助编程下的程序设计与代码编写 使用 Next.js 和 Tailwind CSS 构建可编辑和删除的 ToDo 待办事项应用 探索编程新境界:MarsCode 助你一臂之力 使用 Next.js 和 Tailwind CSS 搭建静态图片展示站点并部署到 Vercel AI 辅助编程:免费工具的优缺点及官网一览 GitHub push更新总是失败,写个python脚本解决 把博客从GitHub迁移到到了vercel ComfyUI 和 Flux.1 安装与使用教程 Flux.1 入门必知:硬件、环境、模型 Git项目的子文件夹中的内容无法同步到远程仓库的解决方法 blender流体Fluid使用中没有流体、流体穿模等一些问题的解决方法 博客聚合网站:积薪,竟然关闭了! blender日常使用中的一些技巧 虽然只有我自己在用,但还是更新了碎言博客的源代码, 与其在迷茫中困惑,不如在努力中前进 差点忘了我还有一个博客... 秧歌、博客和AI 终于熬到了新手上路 好久没有更新博客了。。。 老妈大腿骨骨折,最近一直在医院护理 Hello, September! Ubuntu开机自动启动Docker容器运行WordPress Docker 简单快速安装部署WordPress Docker下安装MySQL 加碘盐能防核辐射的话,还怕什么核战争? shields.io 一个简洁、一致、清晰的徽章 Ubuntu下使用root登录ssh的设置 GitHub Actions 构建、部署 Next.js项目 我又用回了"IE"--edge
如何单独使用Django ORM 在非Django项目中使用Django ORM?
J.sky · 2023-06-05 · via 碎言

在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的方法。