如何直接执行需要django环境的代码

211 阅读1分钟

如果使用了djangoorm, 或者其他对象, 脚本一般需要在django shell中执行, 例如某些初始化项目数据的脚本等.

如果需要进行单步调试, 就要让这些脚本单独执行, 设置django环境的代码如下:

import os
import django
import sys
from os.path import dirname

project_folder = os.path.join(dirname(dirname(dirname(__file__))))
"""
上面这行是找到项目的根目录.
"""
sys.path.insert(0, project_folder)
os.environ.setdefault("DJANGO_SETTINGS_MODULE", 'entrypoint.settings')
"""
`entrypoint`是`settings.py`所在的文件夹名, 默认配置下是跟项目名同名的子目录
"""
django.setup()


"""
之后就可以写包含`django app`中对象的代码, 然后以普通py文件的方式进行调试了.
"""

from myapp.models import MyModel
MyModel.objects.all()
...