Django有足够的scaffolding吗?
它可能是在新发布的1.3版本中,但我还没有找到它。
答案 0 :(得分:18)
我看起来还没有找到适合Django的东西,就像Rails Generate命令一样。 Django有一点不同的哲学。它为您提供了轻松完成工作的工具,但实际上并不适合您(管理界面除外)。在宏伟的计划中,我认为这是可以的。当我使用rails的脚手架时,我不能经常保留很多自动生成的东西。当我这样做时,django管理界面可能也会起作用并给我更多功能。
相反,我建议阅读引入通用视图的Django tutorial step 4,然后介绍形式的chapter 7 of the Django book。你必须对第7章保持耐心,因为作者认为你想要在他们教你简单方法之前就知道困难的细节。 (尝试在页面中搜索短语django.forms)
最后,你需要在rails和django之间做的工作量相等,而Django可能会略微减少。但是,您没有一个命令可以自动为您提供样板代码作为基础。
答案 1 :(得分:8)
因此Django 1.3仍缺乏“脚手架”功能。不好。 脚手架中最好的是它允许开发人员立即从项目开始,而不会回忆所有“模型”,“网址”和“视图”语法。
看看这个例子,让我们开始新项目和app:
$django-admin startproject mysite
$python manage.py startapp blog
现在我们需要从几乎空的文件中手动“启动”所有内容。 但是以这种方式(如在轨道中)这样做是非常方便的
$python manage.py scaffold app:blog model:Post title:string content:text
这应该给我们: models.py
class Post(models.Model):
title = models.CharField
content = models.TextField
views.py
def index(request):
posts = Post.objects.all().order_by('-id')
return render_to_response('blog/index.html', {'posts': posts})
并以某种方式更新urls.py,......或者不是,这更复杂但不太需要。
在将来的Django版本中,这应该不难实现。如果我在Django有足够的知识和经验,我会这样做。不幸的是,我没有做很多Django项目,这就是我需要这个功能的原因。
答案 2 :(得分:7)
这个更靠近类似铁轨的脚手架:https://github.com/modocache/django-generate-scaffold
答案 3 :(得分:1)
我发现了这个:https://github.com/madhusudancs/django-groundwork
看起来它正是您正在寻找的。希望它有所帮助。
答案 4 :(得分:1)
我刚刚使用了Django Common提供的scaffold helper / management命令,它似乎已经设置了一大块样板代码。选项有限,但足够好。
我浏览了代码,大部分内容都很好看。一旦脚手架竖立起来,我需要做一些清理工作,但是:
import
行。合并他们。url
模板标签规范。修改它们以反映新的(1.5)规范,即在为每个模型创建的每个html文件中将第二个参数括在单引号中。urls.py
模块的include
更新了主app.urls
。common.py
,dev.py
和prod.py
。必须手动将应用程序添加到已安装的应用程序中。 YMMV。(如果我想到其他任何事情,将编辑此列表)
话虽如此,看看我不必编写的样板代码数量,我说它做得非常好!
截至目前,回购协议似乎维护良好 - 最后一次提交是在18天前撰写此回复时。我可能会提交一份拉动请求/提出一个关于我们回购时遇到的问题的问题,很快就会出现。
答案 5 :(得分:0)
您可以查看django-addview。这意味着要使用漂亮的ncurses GUI自动添加新视图所需的无聊,平凡的步骤。它为你做了什么:
完全披露:我写了。