教材の内容に関係のない質問や教材とは異なる環境・バージョンで進めている場合のエラーなど、教材に関係しない質問は推奨していないため回答できない場合がございます。
その場合、teratailなどの外部サイトを利用して質問することをおすすめします。教材の誤字脱字や追記・改善の要望は「文章の間違いや改善点の指摘」からお願いします。
この章ではオンラインの統合開発環境であるCloud9での開発環境構築(以下IDE)について解説していきます。IDEは開発に必要なエディッタやターミナル、デバッガーと呼ばれる開発に必要な機能をまとめて、更に入力補完など便利機能などを備えたアプリケーションのことです。Cloud9はそのIDEの中でもブラウザ上で実行できる数少ないWebIDEです。
※この記事は2019/10/2時点のCloud9を参照して執筆しています。
Cloud9は現在Amazon Web Service(以下AWS)が提供しているサービスです。
なので最初にAWSアカウントを取得する必要があります。
この章ではAWSアカウントを取得には触れませんので次の記事などを参照にしてアカウントを取得してください。
途中クレジットカードまたはデビットカードの登録があります。
中高生の方は保護者に説明をしてカード情報を記入するか、デビットカードしようしましょう。
AWSは最初の一年間は無料枠があります。無料枠を超えない範囲で使用する場合料金は発生しません。
参照: AWS 無料利用枠について
また学生はAWS Educateプログラムを受講できます。
学校法人側でプログラムに参加している加盟校と参加していないまたは非加盟校で待遇に差がありますが、非加盟校でも40USD分のAWSクレジットと600USD相当のトレーニングコースを受講できます。 ぜひ活用してみてください。
参考: AWS Educate
AWSにログインしたら「サービスを検索する」の欄に「cloud9」と入力して、cloud9をクリックしましょう。
以下の画面が表示されたら、「Create environment」ボタンをクリックしましょう。
Cloud9を開くと新しいインスタンスを設置するウィザードが始まります。インスタンスはCloud9を設置するサーバーのことです。ここではインスタンスに行う設定を決めていきます。
まずはNameの欄に作成するインスタンス名を入力しましょう。
上記例では「Django-app」としています。
入力できたらNextStep
を押して進みましょう。
次に細かい設定をしていきます。
ここは図と同じデフォルト設定のままで大丈夫です。こちらもNextStep
を押して進みましょう。
最後にこれまで設定した内容の確認です。
こちらも問題なければCreate Enviroment
を押してください。これでCloud9を使う準備は完了です。
以下のような画面が表示されることを確認しましょう。
Cloud9ではデフォルトで「Python2系」と呼ばれるもので古いものとなっています。
最近は「Python3系」が標準的ですので、まずはここで3系にアップデートしましょう。
まずメニューバー右端にある歯車アイコンをクリックして設定画面を表示させます。
表示したらpython supportを選択して、Python VersionをPython3に変更しましょう。
またターミナルで正しく扱えるように環境にも手を加えていきます。
ターミナルで以下のコマンドを打ち込んでいきましょう。
bash123456 Copied!# ターミナルの設定ファイルに設定を上書き
$ echo "alias python=python36" >> ~/.bashrc
# 新しい設定ファイルを読み込み
$ source ~/.bashrc
ここまでできたらPythonのバージョンを確認してみましょう。
bash123 Copied!$ python --version
Python 3.6.8
これでPython3系への設定変更は完了です。
pipはPythonの標準的なパッケージマネージャーです。様々なPythonライブラリをpip経由でインストールできます。
デフォルトではpipのバージョンが古いのでアップデートしましょう。
bash123 Copied!$ sudo rm /etc/alternatives/pip
$ sudo ln -s /usr/bin/pip-3.6 /etc/alternatives/pip
$ pip --version
以下の通りpython3.6が表示されればOKです。
Copied!>pip 9.0.3 from /usr/lib/python3.6/dist-packages (python 3.6)
djangoはデフォルトでバージョン2.0.2がインストールされていますので、バージョンを確認しておきましょう。
Copied!$ python -m django --version
2.0.2
この教材では、Djangoの他にいくつか必要なモジュールがありますので、ここで一通りのモジュールをインストールしておきましょう。
Copied!pip install django-bootstrap4 --user
pip install django-upload-validator --user
pip install pdfminer.six --user
pip install django-widgets-improved --user
さて、次にDjangoプロジェクトを作りましょう。次のコマンドでtutorialプロジェクトを作成します。
bash1 Copied!$ django-admin startproject tutorial
この時点でディレクトリ構造は次のようになっています。
Copied!/home/ec2-user/environment/tutorial
├── manage.py
└── tutorial
├── __init__.py
├── settings.py
├── urls.py
└── wsgi.py
デフォルトの設定ではCloud9上で立ち上げることができないためCloud9向けの設定をしていきます。
まず一度サーバーを起動してみましょう。
Copied!$ cd tutorial
$ python manage.py runserver 8080
立ち上げたら画面右側に以下のようなメッセージが表示されるので、URLが記載されている箇所を選択しましょう。
すると次のようなエラーが表示されます。
「Invalid HTTP_HOST header: '5a0df02423d54f2a895980d471e0920f.vfs.cloud9.ap-northeast-1.amazonaws.com'~」と表示されている'
と'
の間のURLを控えてください。
プロジェクトの全体の設定は/home/ec2-user/environment/tutorial/tutorial/settings.py
に書いてありますのでそちらを編集します。
画面左側のツリーから「settings.py」をダブルクリックしましょう。
ファイルを編集できるようになるため、設定ファイルの中にあるALLOWED_HOSTS
の部分を次のように編集します。
py123456789101112131415161718192021222324252627282930313233 Copied!︙
(略)
# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/2.0/howto/deployment/checklist/
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = '***********************************'
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
# ここを編集する
ALLOWED_HOSTS = [ "ここに先程控えたURLを記入する"]
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
︙
(略)
# ついでに言語とタイムゾーンの設定を以下の通り変更しておきます。
LANGUAGE_CODE = 'ja'
TIME_ZONE = 'Asia/Tokyo'
設定を保存したら、再度以下のコマンドを実行しましょう。
Copied!python manage.py runserver 8080
以下のメッセージが表示されたら、URLをクリックしましょう。
以下の通り、DjangoのデフォルトのTOPページが表示されればOKです。
以上で環境構築は終わりです。