Django执行指定脚本的几种方法
前言
Django Shell
自定义Command
Django extensions
总结
前言用Django写项目,遇到临时需要处理数据库的问题时,会考虑直接让脚本在项目环境中运行,这样就可以直接用定义好的模型和方法了。
这里提供几种方法,通过Django执行指定的脚本,让脚本直接在Django项目的环境中来运行。
Django ShellDjango自带的shell其实就加载了项目的各种环境变量,网上描述得也很多,直接这么跑就可以了:
python manage.py shell < script.py
简单是非常简单,不足的地方就是不好加参数进去,而且喜欢写main的话也不好让脚本跑起来。
自定义Command也可以通过自定义一个简单的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
此外还可以通过django-extensions这个包内置的runscript来实现,这个方法可参考文档:https://django-extensions-zh.readthedocs.io/zh_CN/latest/runscript.html
总结到此这篇关于Django执行指定脚本的几种方法的文章就介绍到这了,更多相关Django执行指定脚本内容请搜索易知道(ezd.cc)以前的文章或继续浏览下面的相关文章希望大家以后多多支持易知道(ezd.cc)!
相关内容
-
win10多任务按键怎么设置在底部详细方法
win10多任务按键怎么设置在底部详细方法,按键,任务,在使用电脑...
-
设置里程碑|设置里程碑的方法有哪些
设置里程碑|设置里程碑的方法有哪些,,1. 设置里程碑的方法有哪...
-
Outlook的PST文件损坏的修复方法
Outlook的PST文件损坏的修复方法,文件, ...
-
手提电脑手写怎么设置|电脑手写设置方法
手提电脑手写怎么设置|电脑手写设置方法,,电脑手写设置方法看...
-
IE脚本错误如何做Web脚本错误解决技巧
IE脚本错误如何做Web脚本错误解决技巧,,这个问题是由于这样的...
-
打印机常见故障排除方法HP5000打印机为例
打印机常见故障排除方法HP5000打印机为例,,HP 50005100打印机...
-
手机版wps里如何给字加拼音|wps在文字上加拼音
手机版wps里如何给字加拼音|wps在文字上加拼音的方法wps怎么...
-
小编辑器教你减少计算机网络流量的最简单方法
小编辑器教你减少计算机网络流量的最简单方法,,核心提示:教你如...
-
Android手机模拟器的安装方法_模拟器安装教程在
Android手机模拟器的安装方法_模拟器安装教程在计算机技能,,核...
-
如何升级路由器的路由器升级_192.168.1.1鲜为人
如何升级路由器的路由器升级_192.168.1.1鲜为人知的方法,,核心...
-
电脑装cpu风扇全过程|电脑cpu风扇安装方法
电脑装cpu风扇全过程|电脑cpu风扇安装方法,,1. 电脑cpu风扇安...
-
电脑硬盘启动设置教程|电脑硬盘启动设置方法
电脑硬盘启动设置教程|电脑硬盘启动设置方法,,1. 电脑硬盘启动...
-
先科电脑显示器无信号|先科显示器使用方法
先科电脑显示器无信号|先科显示器使用方法,,1. 先科显示器使用...
-
萤石设置方法|萤石操作手册下载
萤石设置方法|萤石操作手册下载,,1. 萤石操作手册下载寻找验证...
-
笔记本电脑开机蓝屏|笔记本电脑开机蓝屏怎么解
笔记本电脑开机蓝屏|笔记本电脑开机蓝屏怎么解决方法,,笔记本...