5

私はsettings.pyにこのオプションを備えたDjango1.3プロジェクトを持っています

SITE_ROOT = os.path.dirname(os.path.realpath(__ file __))

STATIC_ROOT = os.path.join(SITE_ROOT、'static')

MEDIA_ROOT = os.path.join(SITE_ROOT、'media')

TEMPLATE_DIRS =(os.path.join(SITE_ROOT、'templates')、)

ただし、Django 1.4では、デフォルトでsettings.pyがプロジェクト名と同じ名前のサブディレクトリに移動されます。その静的なため、メディアテンプレートのディレクトリを同じサブディレクトリに移動する必要がありますか?

これは私がしなければならないことですか、それともSTATIC_ROOT、MEDIA_ROOT、TEMPLATE_DIRSオプションを変更するだけですか?

どちらのバリアントも問題ないことは知っていますが、Django 1.4でこれを行うためのベストプラクティスは何ですか?

また、すべてのアプリが独自のテンプレートと静的ディレクトリを持つことができることも知っています。

また、他のすべてのアプリケーションディレクトリを同じサブディレクトリ内に配置する方がよいでしょうか。これは、manage.pystartappを使用してデフォルトで発生していることではありません

4

1 に答える 1

7

OK、私が従うスキームはこれです:

myproject/requirements.txt--pipインストール可能パッケージ

myproject/deployment-サーバー構成ファイル、フィクスチャ(ダミーデータ)などの展開のもの。

myproject/docs -プロジェクトのドキュメント

myproject/tests -プロジェクトのテスト

myproject/myproject -プロジェクトの運用コード(およびsettings.py、urls.py)

myproject/myprojectフォルダーの展開:

myproject/myproject/app1 -通常のアプリ(特定のテンプレート/静的ファイルを含む)

myproject/myproject/app2 -別の通常のアプリ(上記と同じ)

myproject/myproject/website-慣例により、半特別なアプリ。

このwebsiteアプリは基本的に4つのものを収容しています:

1)空models.py(djangoが有効なアプリと見なすため)

2)views.pyエントリポイントindexビューを使用します。たぶん、他の特定のアプリに適合しない他のいくつかのビュー。

3)プロジェクト全体に適用されるmanagementカスタムdjangoコマンドを含むdir。

4)templates404.htmlと505.htmlを持つディレクトリ。また、他のすべてのアプリに加えて、websiteユニバーサル/ベースhtmlテンプレートを含むと呼ばれるサブディレクトリがあります。extendsindex.html

5)、static という名前の後続のサブディレクトリを持つディレクトリcssjsおよびmediaグローバル静的ファイル用。

エキゾチックなものはないと思います。ほとんどの人が同じようなパターンをたどっていると思いますが、もしあれば、これに関する非効率性をここに示したいと思います。

編集: 本番VS開発の設定に関しては、人気のあるsettings_localパターンを使用します。これはここで読むことができ、最終的にはここでより良いパターンを説明します。

于 2012-05-29T14:35:20.603 に答える