Django-プロジェクトの作成
Djangoをインストールしたので、使い始めましょう。Djangoでは、作成するすべてのWebアプリはプロジェクトと呼ばれます。プロジェクトはアプリケーションの合計です。アプリケーションは、MVTパターンに依存するコードファイルのセットです。例として、Webサイトを構築したいとします。Webサイトは私たちのプロジェクトであり、フォーラム、ニュース、連絡先エンジンはアプリケーションです。この構造により、すべてのアプリケーションが独立しているため、プロジェクト間でアプリケーションを簡単に移動できます。
プロジェクトを作成する
WindowsでもLinuxでも、ターミナルを入手するか、 cmd プロンプトを表示して、プロジェクトを作成する場所に移動し、次のコードを使用します-
$ django-admin startproject myproject
これにより、次の構造の「myproject」フォルダが作成されます-
myproject/
manage.py
myproject/
__init__.py
settings.py
urls.py
wsgi.py
プロジェクトの構造
「myproject」フォルダは単なるプロジェクトコンテナであり、実際には2つの要素が含まれています-
manage.py−このファイルは、コマンドラインを介してプロジェクトと対話するためのプロジェクトローカルdjango-adminの一種です(開発サーバーを起動し、データベースを同期します...)。manage.pyからアクセスできるコマンドの完全なリストを取得するには、コード-を使用できます。
$ python manage.py help
The “myproject” subfolder−このフォルダーは、プロジェクトの実際のpythonパッケージです。4つのファイルが含まれています-
__init__.py − Pythonの場合は、このフォルダーをパッケージとして扱います。
settings.py −名前が示すように、プロジェクトの設定。
urls.py−プロジェクトのすべてのリンクと呼び出す関数。プロジェクトのToCの一種。
wsgi.py −WSGIを介してプロジェクトをデプロイする必要がある場合。
プロジェクトの設定
プロジェクトは、サブフォルダーmyproject /settings.pyでセットアップされます。以下は、設定する必要があるかもしれないいくつかの重要なオプションです-
DEBUG = True
このオプションを使用すると、プロジェクトをデバッグモードにするかどうかを設定できます。デバッグモードでは、プロジェクトのエラーに関する詳細情報を取得できます。ライブプロジェクトでは、「True」に設定しないでください。ただし、Djangoライトサーバーで静的ファイルを提供する場合は、これを「True」に設定する必要があります。開発モードでのみ実行してください。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': 'database.sql',
'USER': '',
'PASSWORD': '',
'HOST': '',
'PORT': '',
}
}
データベースは「データベース」ディクショナリに設定されています。上記の例はSQLiteエンジン用です。前に述べたように、Djangoは-もサポートしています
- MySQL(django.db.backends.mysql)
- PostGreSQL(django.db.backends.postgresql_psycopg2)
- Oracle(django.db.backends.oracle)およびNoSQL DB
- MongoDB(django_mongodb_engine)
新しいエンジンを設定する前に、正しいdbドライバーがインストールされていることを確認してください。
TIME_ZONE、LANGUAGE_CODE、TEMPLATE…などの他のオプションを設定することもできます。
プロジェクトが作成および構成されたので、プロジェクトが機能していることを確認します-
$ python manage.py runserver
上記のコードを実行すると、次のようなものが得られます-
Validating models...
0 errors found
September 03, 2015 - 11:41:50
Django version 1.6.11, using settings 'myproject.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.