这篇文章主要介绍Django执行指定脚本的方法有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
Django自带的shell其实就加载了项目的各种环境变量,网上描述得也很多,直接这么跑就可以了:
python manage.py shell < script.py
简单是非常简单,不足的地方就是不好加参数进去,而且喜欢写main的话也不好让脚本跑起来。
也可以通过自定义一个简单的command来实现需要的效果,以下是最近写的一个示例,可支持执行指定的脚本文件,同时还能加入更多的脚本执行参数:
"""
@author:knktc
@contact:me@knktc.com
"""
import os
import sys
import argparse
from django.core.management.base import BaseCommand
class Command(BaseCommand):
help = 'Run script in current project environment'
def add_arguments(self, parser):
parser.add_argument('script', type=str, nargs=argparse.REMAINDER,
help='script file path and args')
def handle(self, *args, **options):
# get args
args = options['script']
script_path = args[0]
# check file existence
if not os.path.isfile(script_path):
self.stderr.write(f'No such file: [{script_path}]')
sys.exit(1)
# set args
sys_argv = [script_path] + args[1:]
sys.argv = sys_argv
# run
with open(script_path, 'r') as f:
exec(f.read(), {'__name__': '__main__'})
把这段代码放到任意app的management/commands目录下,命名为run_script.py即可,此后就可以一劳永逸地使用这个自定义的命令了。
此后,运行指定的脚本可参考以下的命令:
python manage.py run_script your_script arg1 arg2 -v arg3
此外还可以通过django-extensions这个包内置的runscript来实现,这个方法可参考文档:https://django-extensions-zh.readthedocs.io/zh_CN/latest/runscript.html
以上是“Django执行指定脚本的方法有哪些”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。