0

Django 最好的特性之一是 MVC 的思维方式。我试图以非专业程序员的身份接受这一点。从这个站点上的建议中,我被鼓励开始使用 django 自定义命令,即使对于某些将作为计划 Windows 任务每天调用的脚本也是如此。

我发现,如果我必须为每个命令创建一个模块,它似乎会创建很多重复的代码行。至少例如导入语句。这真的是最好的方法吗?我能想到的唯一解决方案是创建一个“通用”自定义命令模块,它将一个参数作为在通用模块中运行的命令。

我在这里认真思考吗?创建 Django 自定义命令的“最佳实践”是什么?

4

1 回答 1

2

最佳实践是“一项任务一项命令”。当您在没有命令的情况下运行管理时,它会提高可发现性。

干燥你的代码绝对是一个好主意,但恕我直言 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()中的代码。这可确保应用程序逻辑更改反映在相关的管理命令中,并且通常会删除长长的导入列表,因为这些对象是从核心应用程序逻辑而不是在您的管理命令中引用的。

于 2013-08-22T12:31:16.060 回答