PythonのWEBフレームワークDjangoを使用した環境構築
機械学習やAI(人工知能)は主にPythonやR言語を用いて作成されています。このサイトでもPythonを中心に書いていますが、ある程度、Pythonの書き方に慣れてきた場合、Webアプリケーションとして公開したくなってくるものです。
そこで今回は、Webアプリケーションフレームワークの一つであるDjango(ジャンゴ)を用いてWebサーバーを構築していきます。他の有名どころのWebアプリケーションフレームワークとしてRuby on Railsなどがありますが、Djangoの特徴としてPythonで書かれているため、そのままPythonで作成したプログラムを動かすことが出来ます。
本サイトではDjango(ジャンゴ)のインストールから、ローカルPCでのHello Worldの出力までを解説します。
使用環境
今回はwindowsを使用していきます。Djangoは1系、2系があります。最新の2系を使用して環境構築を行います。
- Windows10
- Django(2.1.2)
- Python3.6.5
Pythonはすでにインストールしている前提とします。pythonのインストールが出来ていない場合は先にインストールしておいて下さい。
Djangoのインストール方法
コマンドプロンプトで「pip install django」を実行します。
または Anacondaを使用している場合は「conda install django」を実行します。
PIPを使用してインストールする場合
1 |
>pip install django |
Anadondaを使用してインストールする場合
1 |
>conda install django |
Djangoのインストール確認とバージョン確認
実際にDjangoがインストールされているか確認します。
コマンドプロンプトで「python」を実行します。Pythonの対話モードに切り替わるため、インストールが正常に行われているかバージョンを確認します。
1 2 3 4 |
>python >>> import django >>> django.get_version() '2.1.2' |
Djangoのインストールが成功している場合はバージョンが出力されます。(2.1.2がバージョン情報)
次から実際にDjangoを用いてWebアプリケーションの環境を構築していきます。
Djangoを用いたWebアプリケーションの環境構築方法
Djangoを用いてWebアプリケーションを作成していきます。
プロジェクトとアプリケーションを作成する必要があります。
今回作成するプロジェクト名、アプリケーション名
- プロジェクト名:MyProject
- アプリケーション名:Myapp
別のプロジェクト名やアプリケーション名を使用したい場合は適時読み替えてください。
Djangoはプロジェクトとアプリケーションがあり、プロジェクトとはデータベースの設定や Django固有のオプションを設定することができ、アプリケーションではアプリケーション固有の設定が出来ます。
プロジェクトの作成方法
作成したいディレクトリに移動し、コマンドプロンプトで次のコマンドを実行します。
1 |
>django-admin startproject MyProject |
次のようなディレクトリが作成されます。
1 2 3 4 5 6 7 |
MyProject/ manage.py MyProject/ __init__.py settings.py urls.py wsgi.py |
プロジェクトの作成段階での実行
ここまでうまくいっているか確認してみましょう。作成したプロジェクト名のディレクトリ内に移動し、Djangoを起動します。
Djangoの起動は「python manage.py runserver」で実行することが出来ます。
1 2 3 4 5 6 7 8 |
>cd MyProject >python manage.py runserver System check identified no issues (0 silenced). November 02, 2018 - 15:53:42 Django version 2.1.2, using settings 'MyProject.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CTRL-BREAK. |
URLに「http://127.0.0.1:8000/」を入力し起動してみましょう。次のようなWEBサイトが表示されたら成功です。
ただ、このままだと英語表記になっているので日本語設定にしてきます。
MyProjectディレクトリの中のファイルを修正していきます。
日本語設定への変更
1 2 3 4 5 6 |
settings.py 変更前:LANGUAGE_CODE = 'en-us' 変更後:LANGUAGE_CODE = 'ja' 変更前:TIME_ZONE = 'UTC' 変更後:TIME_ZONE = 'Asia/Tokyo' |
先ほどと同じように「http://127.0.0.1:8000/」のURLを更新してみましょう。
次のような画面になっていたら言語の変更は成功です。
もし、サーバーが止まっていたりうまく反映されない場合は再度「python manage.py runserver」で実行してください。続いて、アプリケーションを作成します。
アプリケーションの作成方法
MyProjectディレクトリに移動し、コマンドプロンプトで次のコマンドを実行します。
まだ、サーバーが起動している場合は「CTL+C」で起動を停止してください。
1 |
>python manage.py startapp Myapp |
次のようなディレクトリが作成されます。
1 2 3 4 5 6 7 8 9 |
Myapp/ __init__.py admin.py apps.py migrations/ __init__.py models.py tests.py views.py |
プロジェクト設定ファイルの変更
追加したアプリケーションをプロジェクトに登録するため、プロジェクトの設定ファイルを変更します。また、URLを指定した場合に追加したアプリケーションのWEBサイトを表示するようにURLの設定についても変更します。
プロジェクトのディレクトリ「MyProject」配下のファイルを更新します。
1 2 3 4 5 6 7 8 9 10 11 |
settingps.py INSTALLED_APPS = [ 'Myapp.apps.MyappConfig', ★追加 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', ] |
Myappディレクトリ内のapps.pyに記載しているMyappConfigというClass名を登録しています。実際に存在するか確認してください。
続いてURLの変更をしていきます。
1 2 3 4 |
urls.py 変更前:from django.urls import path 変更後:from django.urls import path,include |
1 2 3 4 5 6 |
urls.py urlpatterns = [ path('admin/', admin.site.urls), path('Myapp/', include('Myapp.urls')), ★追加 ] |
「http://127.0.0.1:8000/Myapp」とURLを指定した場合にアプリケーションで管理しているディレクトリ(Myapp)のURLを参照できるようになります。
続いてアプリケーション設定ファイルの変更を行っていきます。
アプリケーション設定ファイルの変更
アプリケーションのディレクトリ「Myapp」配下のファイルを更新します。
Myappディレクトリに以下のファイルを追加してください
- urls.py
次のようなコードを記述します。
1 2 3 4 5 6 7 8 9 10 11 |
urls.py from django.urls import path from .import views app_name = 'Myapp' urlpatterns = [ path('',views.index,name='index'), ] |
「http://127.0.0.1:8000/Myapp」とURLを指定した場合、views.pyのindex関数を起動するようにしています。
views.pyを以下のように書き換えてください。index関数を作成しています。
1 2 3 4 5 6 |
views.py from django.http import HttpResponse def index(request): return HttpResponse("Hello,world") |
HTTP Requestを受信した場合、「Hello,world」という文字列をResponseで返却しています。
以上でアプリケーション設定ファイルの変更は完了です。
実際に起動して見ましょう。
ローカルPCでのHello Worldの出力
「python manage.py runserver」コマンドでDjangoの起動を行います。
1 2 3 4 5 6 7 |
>python manage.py runserver System check identified no issues (0 silenced). November 02, 2018 - 15:53:42 Django version 2.1.2, using settings 'MyProject.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CTRL-BREAK. |
「http://127.0.0.1:8000/Myapp」とURLを指定してください。以下のWEBサイトが表示できたら成功です。