Djangoでは「プロジェクト」と「アプリケーション」という要素がります。
プロジェクト
DjangoのWebアプリ全体をさします。
アプリケーション
機能や要素単位でまとめたものでプロジェクトは複数のアプリケーションを持ちます。
プロジェクトとアプリケーションの関係
Djangoプロジェクト├── プロジェクト設定├── アプリケーション1├── アプリケーション2:└── アプリケーションxxx
Djangoでは、アプリケーションごとに開発を進めていきます。
また、アプリケーションは疎結合(Loose coupling)という考えでアプリケーション間の依存は極力減らして開発をすることが推奨されてます。
プロジェクトの作成は下記のコマンドで作成をします。 これがWebアプリのルートディレクトリとなります。
プロジェクト作成コマンド $ django-admin startproject <プロジェクト名> [<ディレクトリ>]
MacOSの場合(env) $ django-admin startproject geodjango(env) $ cd geodjangoWindowsの場合(env) C:¥> python env\Scripts\django-admin.py startproject geodjango(env) C:¥> cd geodjango
Django標準のファイル構成
geodjango <-- プロジェクトのルート├── manage.py <-- プロジェクトの管理用のスクリプト└── geodjango <-- プロジェクト設定├── __init__.py <-- Pythonの初期化処理パッケージファイル├── settings.py <-- プロジェクトの設定ファイル├── urls.py <-- プロジェクトのURLパターン設定ファイル└── wsgi.py <-- プロジェクトのWSGI(ウィズギー)インターフェース設定ファイル
Note
「python manage.py help」と入力すれば管理コマンドのヘルプが表示されます。
Webアプリの「言語」と「タイムゾーン」を自分の地域に設定します。 設定は設定ファイルの「geodjango/settings.py」を編集します。
(env) $ vi geodjango/settings.py
編集前106: LANGUAGE_CODE = 'en-us'107:108: TIME_ZONE = 'UTC':113:114: USE_TZ = True編集後106: LANGUAGE_CODE = 'ja-JP'107:108: TIME_ZONE = 'Asia/Tokyo':113:114: USE_TZ = True
Note:
タイムゾーンは、ウィキペディアの「List of tz database time zones - http://en.wikipedia.org/wiki/List_of_tz_database_time_zones」が参考になります。
この現時点では、デフォルトのSQLiteデータベースで動作確認をします。 ENGINEの項目を変更することで、PostgreSQLやMySQLなどに他のデータベースに変更することが出来ます。
MacOSの場合で、SQLiteがインストールされて無い場合はbrewコマンドでイントールしてください。
(env) $ brew update(env) $ brew install sqlite3(env) $ sqlite3 -version3.19.3 2017-06-27 16:48:08 2b0954060fe10d6de6d479287dd88890f1bef6cc1beca11bc6cdb79f72e2377b
設定ファイル「geodjango/settings.py」でSQLiteデータベースの設定の確認をします。
$ vi geodjango/settings.py
DATABASES = {'default': {'ENGINE': 'django.db.backends.sqlite3','NAME': os.path.join(BASE_DIR, 'db.sqlite3'),}}
manage.py migrateコマンドを実行して、データベースにテーブルを作成します。
migrateコマンド $ python manage.py migrate
(env) $ python manage.py migrateOperations to perform:Apply all migrations: admin, auth, contenttypes, sessionsRunning migrations:Applying contenttypes.0001_initial... OKApplying auth.0001_initial... OKApplying admin.0001_initial... OKApplying admin.0002_logentry_remove_auto_add... OKApplying contenttypes.0002_remove_content_type_name... OKApplying auth.0002_alter_permission_name_max_length... OKApplying auth.0003_alter_user_email_max_length... OKApplying auth.0004_alter_user_username_opts... OKApplying auth.0005_alter_user_last_login_null... OKApplying auth.0006_require_contenttypes_0002... OKApplying auth.0007_alter_validators_add_error_messages... OKApplying auth.0008_alter_user_username_max_length... OKApplying auth.0009_alter_user_last_name_max_length... OKApplying sessions.0001_initial... OK(env) $ lsdb.sqlite3 geodjango/ manage.py
ここまで上手く出来ているかを確認します。
manage.pyのrunserverコマンドを実行することで、Djangoのサーバーを起動します。
Djangoのサーバー起動コマンド $ python manage.py runserver
Webアプリ起動(env) $ python manage.py runserverPerforming system checks...System check identified no issues (0 silenced).June 12, 2018 - 16:54:28Django version 2.0.6, using settings 'geodjango.settings'Starting development server at http://127.0.0.1:8000/Quit the server with CTRL-BREAK.[12/Jun/2018 16:54:37] "GET / HTTP/1.1" 200 16510[12/Jun/2018 16:54:37] "GET /static/admin/css/fonts.css HTTP/1.1" 200 423[12/Jun/2018 16:54:37] "GET /static/admin/fonts/Roboto-Regular-webfont.woff HTTP/1.1" 200 80304[12/Jun/2018 16:54:37] "GET /static/admin/fonts/Roboto-Bold-webfont.woff HTTP/1.1" 200 82564[12/Jun/2018 16:54:37] "GET /static/admin/fonts/Roboto-Light-webfont.woff HTTP/1.1" 200 81348Not Found: /favicon.ico[12/Jun/2018 16:54:38] "GET /favicon.ico HTTP/1.1" 404 1975
ブラウザからURL: http://127.0.0.1:8000/ にアクセスをします。 上手く作成できていれば、下記の画面が表示されます。
停止する時は、CTRL+C(コントロールとCボタンを同時に押す)です。 Windowsの場合は、Ctrl+Breakで停止することがあります。
管理画面にログイン権限のある管理ユーザのアカウントを作成します。 Webアプリ起動されていたら、CTRL+Cで一旦止めます
管理ユーザのアカウント $ python manage.py createsuperuser
(env) $ python manage.py createsuperuserUsername (leave blank to use 'homata'): adminEmail address: [email protected]Password: xxxxxxPassword (again): xxxxxxSuperuser created successfully.Webアプリを再起動します(env) $ python manage.py runserver
Webアプリ起動後、http://127.0.0.1:8000/admin にアクセスして作成したアカウントでログインして確認します。
ログイン画面が表示されたら作成したアカウントとパスワードを入力します。
ログイン後、 管理画面が表示されれば管理画面は正常に動作しています。