Django的最佳功能之一是MVC思维方式。我试图接受这个非专业程序员。根据本网站的建议,我被鼓励开始使用django自定义命令,即使对于每天将作为Schedule Windows Task调用的一些脚本也是如此。
我发现,如果我必须为每个命令创建一个模块,它似乎会创建许多重复的代码行。至少例如import语句。这真的是最好的方法吗?我能想到的唯一解决方案是创建一个“通用”自定义命令模块,该模块将参数作为在通用模块中运行的命令。
我在这里思考吗?创建Django自定义命令的“最佳实践”是什么?
答案 0 :(得分:2)
最佳做法是“一个任务一个命令”。当您在没有命令的情况下运行manage时,它可以提高可发现性。
干掉你的代码绝对是一个好主意,但恕我直言django命令不是代码重复的主要来源。
这是一个基本命令:
from django.core.management.base import BaseCommand
from django.contrib.auth.models import User
<specific imports for my project>
class Command(BaseCommand):
help = "Produce sample accounts."
def handle(self, *args, **kwargs):
# do a thing
这不是django本身的额外残余。
干掉自己代码的最简单方法是在应用程序的其他地方重用handle()中的代码。这可确保应用程序逻辑更改反映在相关的管理命令中,并且通常会删除长导入列表,因为这些对象是从核心应用程序逻辑而不是管理命令中引用的。