繁体   English   中英

如何执行包含Django函数的python脚本

[英]how to execute python script containing django functions

我有一个python脚本test.pymake_password从Django库中导入make_password函数。 它是这样的:

from django.contrib.auth.hashers import make_password

.... a lot of other stuff
def init():
    ...

if __name__ == "__main__":
    init()

因此,我想从命令行运行它,例如:

python test.py

但这会导致错误消息的完整列表,这些错误消息全部与导入Django模块有关。 如果我from django.contrib.auth.hashers import make_password ,那么一切正常(除了我不能使用make_password函数的事实)。

您收到的错误消息很可能是抱怨设置模块不可用。

导入任何核心模块时,Django都会初始化其运行时环境(通过django.core.management.setup_environ() )。 如果没有有效的项目环境,django生态系统将无法正常运行。

您至少有两个选择:

1.手动设置Django设置模块

import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'yourapp.settings'

from django.contrib.auth.hashers import make_password
...

请注意,这要求yourapp.settings可通过sys.path来使用,因此可能有必要将项目路径显式添加到sys.path (或PYTHON_PATH )。

基本相同事物的其他版本也可用

2.建立管理命令

文档中对此进行了详细解释。

原则上,您需要提供一个yourapp.management.mycommand模块,其中包含单个Command类:

class Command(BaseCommand):
    def handle(self, *args, **options):
       # make_password()

该命令可以通过django的manage.py运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM