4

最初のコマンドである Django サンプル プロジェクトで作成を開始しました。

django-admin.py startproject test

私に与えます:

- root
  - test
    - __init__.py 
    - settings.py 
    - urls.py 
    - wsgi.py 
    - manage.py

次に、最初のアプリを作成します。

python manage.py startapp foo

それは私のためにフォルダを作成しましたroot/foo

root/test私のフォルダをどのように理解する必要がありますか。このフォルダーは私のプロジェクトのグローバル構成用であり、それ以上のものではありませんか? (Symfony 2 アプリ フォルダーに似ています)

Djangoのドキュメントに次のように記載されているため、私は混乱しています:

内側の mysite/ ディレクトリは、プロジェクトの実際の Python パッケージです。

ただし、 (mysite に相当する)manage.py startapp fooの下ではなく、ルートの下にアプリを作成します。root/test

[編集]

2 つのコマンド:

python manage.py startapp app

と:

django-admin.py startapp app

プロジェクトルートの下ではなく、プロジェクトルート内にアプリを提供しますroot/name_of_generated_project

ジャンゴ1.4

[編集] 2

申し訳ありませんが、私のせいです。今はすべて問題ありません。

[編集] 3

別のプロジェクトを再度作成したい:

django-admin.py startproject jobeet

私の初期構造は上記に似ています。

ここで、アプリを作成してみます (jobeet フォルダー内):

django-admin.py startapp jobs

そして、私はそうでjobeet/jobsはありませんjobeet/jobeet/jobs

また :/

だから私のプロジェクトルートの中に私は持っています:

- jobeet
- jobs
- manage.py

別のコマンド:

python manage.py startapp app

私に同じ結果を与える

4

3 に答える 3

8

それでは、新しい Django プロジェクトを作成するとしましょうtestproject:

django-admin.py startproject テストプロジェクト

これにより、次の最小限のファイル セットを含む新しいプロジェクトが作成されます。

testproject/
├── __init__.py
├── manage.py
├── settings.py
└── urls.py

最初のサイト用に新しいアプリを作成するには、ディレクトリにmysite1移動して次を実行します。testproject

python manage.py startapp mysite1

mysite1これにより、アプリの新しいディレクトリが作成されmysite1ます。

I.e. with just these two commands you would arrive at this hierarchy:

testproject/
├── __init__.py
├── manage.py
├── mysite1
│   ├── __init__.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
├── settings.py
└── urls.py

Refer to the django-admin.py and/or manage.py individual commands here.

In Django there is a one-to-many relationship between a project and an app. An app is usually one individual site component (e.g. comments, ratings), whereas a project is an organisation of several apps and can power many different sites. That's why you get the sites framework. In practice, one project usually serves one website, but with Django sites app with one project you can serve as many websites as you like, for reusability's sake.

P.S. I think creating a project simply called test is not a good practice because with Django unit tests at app level unit tests will go into a file called tests.py or within a folder called tests.

UPDATE for Django 1.4

As @zeantsoi has commented below, my answer:

applies to Django 1.3 and prior. Per the docs, beginning in 1.4, base configuration files (including settings.py, urls.py, and wsgi.py) are abstracted into a subdirectory titled the same name as the project.

于 2012-04-09T21:16:49.137 に答える
2

「test」はプロジェクトの最上位です。symphony 2 は使ったことがないのでなんとも言えませんが、だいたい把握できているようです。そこにあるファイルは、基本的にすべてのグローバル構成ファイルです。"test" フォルダー内には、1 つ以上のアプリ フォルダーも必要です。これらのアプリ フォルダー内には、アプリ固有のモデル、ビュー、URL などがあります。

fooアプリが root/foo ではなく root/test/foo に存在する必要があることに少し問題があるようです。

現在、私のプロジェクトでは、virtualenv フォルダーのようなものがルート ディレクトリに存在する傾向がありますが、そのレベルでアプリを使用するべきではありません (機能しません)。

于 2012-04-09T21:03:10.763 に答える
1

manage.pyはstartprojectコマンドを提供しません-それは通常django-adminコマンドです。実行しているmanage.pyを確認します。理想的には、作成したプロジェクトディレクトリのmanage.pyを使用します。

于 2012-04-09T21:01:09.893 に答える