2011-03-23 85 views
25

Django有沒有足夠的scaffoldingDjango有沒有足夠的腳手架? (A Ruby on Rails)

它可能在新發布的1.3版本中,但我還沒有找到它。

+2

你是什麼意思?對於管理員你有管理員應用程序對於處理表單模型,你有ModelForm,對於通用控制器,你有通用的視圖:) – 2011-03-23 14:09:24

+1

當你說「腳手架」,你的意思是在這個意義上? http://stackoverflow.com/questions/5327933/define-scaffolding-with-respect-to-dynamic-data-and-asp-net-mvc – 2011-03-23 14:12:34

+0

這一切都是關於'rails'腳手架我想知道是否有像'管理.py scaffold SOME_MODEL',如果它的行爲像Rails一樣。:)它可能對我有點意義:) – sultan 2011-03-23 14:15:44

回答

17

我看過,還沒有找到Django的東西,很像Rails Generate命令。 Django有一些不同的哲學。它給你提供了一些工具,讓你輕鬆做事,但實際上並沒有爲你做(管理界面除外)。在事物的宏偉計劃中,我認爲這是好的。當我使用rails的腳手架時,我不能經常保留大部分自動生成的東西。當我這樣做時,django管理界面可能也會工作,並給我更多的功能。

相反,我建議通過介紹通用視圖的Django tutorial step 4,然後介紹窗體的chapter 7 of the Django book來閱讀。你必須耐心等待第7章,因爲作者認爲你想在簡單的方法教你之前知道艱難的細節。 (嘗試在頁面中搜索詞組django.forms)

最後,您需要在rails和django之間完成的工作量與Django相當,而且可能會稍微減少一些。但是,您沒有一個命令會自動爲您提供樣板代碼以用作基礎。

+1

+1在Django中,您可以間接節省時間 – slezica 2011-04-17 21:13:49

7

因此,Django 1.3仍然缺乏「腳手架」功能。不好。 支架的最佳之處在於,它允許開發人員立即開始項目,而不必回顧所有「模型」,「網址」和「視圖」語法。

看看下面這個例子,讓我們開始新的項目和應用:

$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項目,這就是爲什麼我需要這個功能。

+0

實際上,我們需要的是創建模型,模型表單,列表模板,查看/編輯模板以及生成urls – sultan 2011-08-04 09:06:00

+0

我同意。儘管我沒有使用原來的腳手架,但我仍然希望快速啓動。 Django很快就把我拒之門外。我喜歡Python,但是因爲Django的缺點而不得不剪貼。 – nathanengineer 2016-05-19 23:20:28

0

您可以檢查django-addview。它意味着需要使用漂亮的ncurses GUI自動添加新視圖,這些都是無聊的,平凡的步驟。它爲你做什麼:

  • 擴展CBV或寫功能
  • 填寫CBV的參數
  • 創建模板,在給定的位置
  • 編輯的urls.py你
  • 關心所有進口

完全披露:我寫的。

1

我剛剛使用了Django Common提供的scaffold helper/management命令,它似乎設置了一大堆代碼樣板。選項是有限的,但足夠體面。

我瀏覽了代碼,大部分看起來都很好。我需要做的清理,一旦被腳手架「搭建」,雖然有一點點:爲每個創建模型加入

  • 獨立import線。合併它們。
  • 模板仍舊帶有舊的(1.4)url模板標籤規範。修改它們以反映新的(1.5)規範,即將每個模型中創建的每個html文件中的第二個參數括在單引號中。
  • 更新了urls.py主模塊,include模塊用於app.urls模塊。
  • 我使用了一個非標準的settings.py設置 - 三個單獨的文件common.pydev.pyprod.py我的設置。必須手動將應用程序添加到已安裝的應用程序。因人而異。

話雖這麼說,看着我沒有寫的樣板代碼量(如果我想別的編輯該列表),我會說這確實很好工作!

截至目前,回購似乎維護得很好 - 最後一次提交是在撰寫此回覆時的18天前。我很可能會提出一個拉取請求/提出一個關於我在回購時遇到的問題的問題。