0

重複の可能性:
django 1.4でdjangoアプリを作成する場所はどこですか?

Djangoバージョン1.4では、構造が変更さmanage.pyれ、トップレベルになります。django webisteのチュートリアルを使用してください。プロジェクトの名前はmysiteで、構造は次のようになります。

mysite/
manage.py
mysite/
    __init__.py
    settings.py
    urls.py
    wsgi.py

アプリを作りたいです。チュートリアルでは、アプリをmanage.pyのすぐ隣に配置するため、次のようにアプリもトップレベルになります。

mysite/
manage.py
mysite/
    __init__.py
    settings.py
    urls.py
    wsgi.py
polls/
    __init__.py
    models.py
    tests.py
    views.py

それで:

  1. 2番目のレベル(settings.pyのすぐ隣)でアプリを作成した場合の違いは何ですか?

  2. トップレベルでアプリを作成し、静的ファイルがある場合はmysitepollsすべてを使用する必要があるので、static/ディレクトリをどこに配置しますか?

4

2 に答える 2

2

Django はプロジェクトのレイアウトを変更して、myproject.myapp.somethingインポートの恐ろしい時代を終わらせました。このような種類のインポートがコードベースに散らばっていると、何かを移動したり、別のプロジェクトでアプリを再利用したりすることはできません。新しいレイアウト (プロジェクトと同じレベルのアプリ) は、インポートをプロジェクト相対ではなくアプリ相対にし、物事を大幅に簡素化します。

コードのルート ディレクトリに入れる必要があるのは、アプリ ディレクトリ、プロジェクト ディレクトリ、および manage.py だけです。プロジェクト全体 (設定、テンプレート、静的ファイルなど) はすべて、プロジェクト ディレクトリに移動する必要があります。

つまり、STATIC_ROOTを指す必要myproject/staticがありますが、そのディレクトリを手動で作成したり、そのディレクトリに手動で何かを入れたりしないでください。特定のアプリに関連付けられた静的ファイルは、そのアプリのstaticディレクトリに配置する必要があります。プロジェクト全体の静的ファイルは、まったく別のディレクトリに配置する必要があります (STATIC_ROOTまたはと同じではありませんMEDIA_ROOT)。次に、そのディレクトリを に追加してSTATICFILES_DIRS、Django が開発中およびcollectstatic管理コマンドの実行時にそれを含めるようにします。

于 2012-08-28T14:57:47.753 に答える
1

次のように、テンプレートを使用してプロジェクトを開始できます。

https://github.com/goinnn/django-base-template

これらのテンプレートでは、アプリケーションの場所がすでに定義されています

于 2012-08-28T12:57:25.867 に答える