如何配置基于django的独立运行进程

django的数据库访问等功能非常强大,但是通常的使用方式都是基于uwsgi的,如何运行基于django的独立进程呢?

经过尝试,配制方法如下:

1. 设置环境变量:

    主要是以下两个:

    export PYTHONPATH=$PYTHONPATH:/home/username/project
    export DJANGO_SETTINGS_MODULE=project.settings

    可以把上面的配置写到/home/username/.bash_rc或/home/username/.bash_profile下

    调试时可以写到独立文件,例如/home/username/test_env.sh中

    然后source /home/username/test_env.sh

2.在独立运行的进程的源代码文件(设为test_proc.py)开头写入以下代码:

    import django

    在主函数中写入:django.setup()

    注意:

        一定不能在该文件中import任何会调用数据库操作的模块,而应该直接import这些模块中需要调用的函数,而且被import的模块必须从PYTHONPATH环境变量中设置的位置开始,也就是说即使在相同目录下也得写明全路径。

        但是可以import不带有数据库操作函数的模块。

    红色部分务必注意!


================================================

补充:

如果由于多人调试,不方便按照第一步的方式设置环境变量,以免引起其他人调试的时候环境变量冲突,可以采用以下方式:

假设需要执行的python脚本位于prj/dir/目录下,在程序开头写入以下代码:

import os, sys
script_dir = os.path.split(os.path.realpath(__file__))[0]           # 获取脚本所在的目录
prj_dir = os.path.dirname(script_dir)                                       # 获取其上级目录,及django项目所在的目录。
sys.path.append(prj_dir)                                                         # 在python系统路径中加入上一步得到的目录。
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "hcloud.settings")                # 设置DJANGO_SETTINGS_MODULE变量。

然后就可以正常使用了。




你可能感兴趣的:(django,django)