はじめに
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
は無料で使用できるため、データベースを確認するときはおすすめです。
参考情報
- 公式 (と思われる)
paizaラーニング : Django入門編1: Djangoの基本を理解しよう https://paiza.jp/works/django/primer/beginner-django1
Python Django入門 (3)