はじめに
Djangoの環境を構築するための学習内容を記載します。
環境
- Windows 10 (version 1809)
- Python version : 3.7.1
- Django version : (2, 1, 7, 'final', 0)
注意点
- 現在どのディレクトリ階層にいるか、コマンド実施前に必ず確認しましょう (コマンド
cd
で確認)
- 現在のディレクトリ階層直下のファイルを把握しましょう (コマンド
dir
で確認)
- Djangoサーバーへのアクセスは、httpは可能ですが、httpsでは本記事では実施できません。
Djangoのプロジェクトを作成する
Pythonのインストール
インストールディレクトリがわからなくなった場合は、Pythonをアンインストール後、Pythonをディレクトリ指定でインストールします。
そのとき、環境設定にPATHも通すことができるため、PATHも通しましょう。
Pythonのバージョン確認 (python --version
)
Pythonのインストールディレクトリ確認(where python
)
仮想環境(virtual environment (virtualenv))のインストール (python -m venv temp
)
ディレクトリ移動 (cd temp
)
仮想環境を使用する (Scripts\activate
)
pipを最新版にする (python -m pip install --upgrade pip
)
Djangoのモジュールをインストールする (pip install Django
)
モジュールバージョンを確認する (pip list
)
プロジェクトを作成する (django-admin startproject myapp
)
myapp
├── manage.py
└── myapp
├── __init__.py
├── settings.py
├── urls.py
└── wsgi.py
Djangoのサーバーを起動する
ディレクトリを移動する(cd myapp
)
Djangoのサーバーを起動する(python manage.py runserver
)
Webブラウザでhttp://localhost:8000/
を入力する。
アプリケーション作成して、実行する
bbsで簡単なメッセージを表示します。
(1) manage.pyが直下にいるディレクトリで、python manage.py startapp bbs
のコマンドを実行する
(2) Webサーバーのメッセージに応じて、index関数がHello world
を返します。
HttpResponse関数を使用するため、importすること。
bbs/views.py
from django.shortcuts import render
from django.http import HttpResponse
def index(request):
return HttpResponse('Hello world')
(2) bbs/views.pyのプログラムを呼び出す用にルーティングする。
ルーティングは、WebサーバーのURLとプログラムを紐づける仕組み。
Djangoでは、プロジェクト全体とアプリケーションの2段階でルーティングを行う。
まず、プロジェクト全体のルーティングを行う。
myapp/urls.pyファイルは、urlresolverをつかったURLのパターンのリストを含んでいます。
urlspatternsリストの中でpath関数を呼び出す。path関数を呼び出しているため、includeすること。
urls.py
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('bbs/', include('bbs.urls'))
path('admin/', admin.site.urls),
]
(3) bbsフォルダーの中に、urls.pyファイルを作成する
次にbbsアプリケーション側のルーティングを設定する。
bbs/urls.py
from django.urls import path
from . import views
urlpatterns = {
path('', views.index, name='index')
}
(4) setting.pyを開いて、アプリケーションを登録する
INSTALLED_APPS = [
'bbs.apps.BbsConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
(5) サーバーを起動していなかったら、python manage.py runserver
でサーバーを起動しましょう。
(6) Webブラウザでhttp://localhost:8000/bbs
を入力する。Hello worldと表示される。
スーパーユーザーの作成
次に、スーパーユーザーを作成します。ディレクトリの位置を確認しながら、実行しましょう。
(temp) C:\Users\uv2ut\PycharmProjects\temp\myapp>dir
C:\Users\uv2ut\PycharmProjects\temp\myapp のディレクトリ
2019/02/23 20:40 <DIR> .
2019/02/23 20:40 <DIR> ..
2019/02/23 20:37 7 .gitignore
2019/02/23 15:10 <DIR> bbs
2019/02/23 14:24 0 db.sqlite3
2019/02/23 14:22 552 manage.py
2019/02/23 14:24 <DIR> myapp
2019/02/24 20:46 370 README.md
4 個のファイル 929 バイト
4 個のディレクトリ 713,390,907,392 バイトの空き領域
(temp) C:\Users\uv2ut\PycharmProjects\temp\myapp>python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying admin.0003_logentry_add_action_flag_choices... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying auth.0008_alter_user_username_max_length... OK
Applying auth.0009_alter_user_last_name_max_length... OK
Applying sessions.0001_initial... OK
(temp) C:\Users\uv2ut\PycharmProjects\temp\myapp>python manage.py createsuperuser
Username (leave blank to use 'uv2ut'): admin
Email address: abcd@abcd.com
Password:
Password (again):
This password is too short. It must contain at least 8 characters.
This password is too common.
This password is entirely numeric.
Bypass password validation and create user anyway? [y/N]: y
Superuser created successfully.
管理サイトの有効化
管理サイトを表示させてみましょう。
python manage.py runserver で開発用サーバを起動します。
http://127.0.0.1:8000/admin/ にブラウザでアクセスします。
初回の $ python manage.py createsuperuser で初期化したスーパーユーザー admin/hogefuga でログインします。
実行イメージ
まとめ
今回は、コマンドベースで、Djangoサーバー作成。サーバー上でWebアプリケーション実行。管理サイトの表示まで実行しました。
IDEであるPyCharm上で開発できる方法も調べて記事にできればと思います。
補足
自動作成されたデータベースファイルは、こんな感じです。
DB.Browser.for.SQLite
は無料で使用できるため、データベースを確認するときはおすすめです。
参考情報