web-dev-qa-db-ja.com

Djangoに適切な足場はありますか? (A la Ruby on Rails)

Djangoに適切な 足場 はありますか?

新しくリリースされた1.3バージョンに含まれている可能性がありますが、まだ見つかりません。

27
sultan

Django Rails Generateコマンドによく似ています。Djangoには別の哲学。それはあなたに物事を簡単に行うためのツールを提供しますが、実際にはあなたのためにそれをしません(管理インターフェースを除いて)。物事の壮大な計画では、これは大丈夫だと思います。 m自動生成されたものの多くを保持できないことがよくあります。そうすると、Django管理インターフェイスも機能し、より多くの機能が提供されます。

代わりに、私が提案するのは、一般的なビューを紹介する Djangoチュートリアルステップ4 を読んでから、 Django本 の第7章)を読むことです。フォームを紹介します。簡単な方法を教える前に、ハードウェイの詳細を知りたいと著者が考えているため、第7章を辛抱強く待つ必要があります(ページでDjango.formsというフレーズを検索してみてください)

最終的に、RailsとDjangoの間で行う必要のある作業量は同等であり、Djangoではわずかに少なくなる可能性があります。ただし、1つはありません。基礎として使用する定型コードを自動的に提供するコマンド。

19
newz2000

したがって、Django 1.3にはまだ「足場」機能がありません。良くない。スキャフォールドで最も優れているのは、開発者がすべての「モデル」、「URL」、「ビュー」の構文を思い出さずに、プロジェクトをすぐに開始できることです。

この例を見て、新しいプロジェクトとアプリを始めましょう。

$Django-admin startproject mysite
$python manage.py startapp blog

そして今、ほとんど空のファイルからすべてを手動で「開始」する必要があります。しかし、この方法でそれを行うことは非常に便利です(Railsのように)

$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プロジェクトを行っていないので、この機能が必要です。

8
januszm

これはRailsのような足場に近いです: https://github.com/modocache/Django-generate-scaffold

7
rpq

私はこれを見つけました: https://github.com/madhusudancs/Django-groundwork

それはまさにあなたが探しているもののように見えます。それが役に立てば幸い。

1
Bernardo Siu

Django Common が提供するscaffold helper/managementコマンドを使用したところ、ボイラープレートコードのまともなチャンクが設定されたようです。オプションは限られていますが、十分にまともです。

私はコードをざっと読みましたが、ほとんどのコードは問題なく見えます。ただし、足場が「建てられた」後は、少しクリーンアップする必要がありました。

  • 作成されたモデルごとに、個別のimport行が追加されました。それらをマージしました。
  • テンプレートには、古い(1.4)urlテンプレートタグの仕様がまだ含まれています。モデルごとに、作成された各htmlファイルで、新しい(1.5)仕様を反映するように変更しました。つまり、2番目のパラメーターを一重引用符で囲みました。
  • メインのurls.pyapp.urlsモジュールのincludeに更新しました。
  • 非標準のsettings.pyセットアップを使用しています-3つの別々のファイルcommon.pydev.py、およびprod.pyをセットアップに使用しています。インストールされているアプリにアプリを手動で追加する必要がありました。 YMMV。

(他に何か考えたら、このリストを編集します)

そうは言っても、私が書く必要がなかった定型コードの量を見ると、それは非常に良い仕事をしていると思います!

現在のところ、リポジトリはかなりよく維持されているようです。最後のコミットは、この応答を書いている時点で18日前でした。プルリクエストを送信するか、レポで直面した問題について問題を提起する予定です。

1
Shrikant Joshi

Django-addview を確認できます。これは、Nice ncursesGUIを使用して新しいビューを自動的に追加するために必要な退屈でありふれた手順を実行することを目的としています。それはあなたのために何をしますか:

  • CBVまたは書き込み機能を拡張する
  • CBVの充填パラメータ
  • 指定された場所にテンプレートを作成します
  • あなたのためにurls.pyを編集します
  • すべての輸入品を気にする

完全開示:私はそれを書きました。

0
yakxxx