0

私はしばらく Django 1.3 を使用してきましたが、システムが自動的に Django を 1.4 に更新したため、設定ファイルで問題に直面しています。問題 1: コマンドdjango-admin.py startproject tutorial Django で新しいプロジェクトを作成しましたが、チュートリアル プロジェクト内にチュートリアル アプリが自動的に作成されました。

 raise ImportError("Could not import settings '%s' (Is it on sys.path?): %s" % (self.SETTINGS_MODULE, e))
ImportError: Could not import settings 'tutorial.settings' (Is it on sys.path?): No module named tutorial.settings

問題 2: プロジェクト (1.3) のルート ディレクトリに 1 つの中央設定ファイルがありましたが、別のアプリを作成した場合、django はそれを見ていないようです。たとえば、前の問題で、私はチュートリアルアプリを削除しません.djangoはそのアプリの設定ファイルだけを見て、開発サーバーを起動する前にそこにデータベース情報を設定しないと文句を言います.その場合、3つのアプリがある場合はどうなりますか?それぞれが個別の設定ファイルにデータベース情報を入力するのは本当に?

4

2 に答える 2

4

Django 1.4 では、Django プロジェクトのファイル システム レイアウトが変更されました。ご覧になったチュートリアルの "アプリ" はアプリではなく、プロジェクト パッケージです。詳細については、チュートリアルを参照してください。

于 2012-10-23T15:07:41.540 に答える
3

Django 1.4 プロジェクトの構造が変更されました -- 良い方向へ。今では、よりモジュール化されています。内部に追加された「チュートリアル」ディレクトリは、プロジェクト ディレクトリです。プロジェクトに固有の settings.py、urls.py などを保持します。アプリはプロジェクトと並行して追加されるようになりました (「チュートリアル」プロジェクト ディレクトリと同じレベルのメイン ディレクトリ)。これにより、プロジェクトとアプリを介して、アプリとして、つまりfrom some_app.models import SomeModelの代わりにインポートできますmyproject.some_app.models import SomeModel。これの利点は明らかです。アプリは特定のプロジェクトに関連付けられなくなりました。基本的に、そのままリッピングしたり、パッケージ化して再配布したり、まったく別のプロジェクトで使用したりできます。多くの変更を加えたり、依存関係を削除したりする必要はありません。新しいプロジェクト構造を維持し、それを愛することを学びましょう。

于 2012-10-23T15:12:17.360 に答える