AWSのcloud9でDjangoを使ってみる

django-logo

こんにちは!

最近はPythonの言語仕様と睨めっこばっかりしています。

さすがに息抜きがしたい!と思いまして・・・。
よく使ってるcloud9上でDjangoによってWebサーバーを立ち上げます!

Cloud9でDjangoを立ち上げる道のり

  1. cloud9の確認
  2. djangoプロジェクトの作成
  3. djangoの起動

cloud9の確認

cloud9ではデフォルトでdjangoが入っています。

私の環境はAmazon Linuxでしたが入っていることを確認しました。

cloud9ではデフォルトでpythonが入っています。

但し、2.xと3.xの両方かインストールされています。


$python --version
Python 2.7.16
$python3 --version
Python 3.6.8
$django-admin --version
2.0.2

djangoを使うには3.x系を使用するのでコマンドはpython3を使います。

djangoプロジェクトの作成

それではdjangoのプロジェクトを作成しましょう!

以下のコマンドを入力するとカレントディレクトリにプロジェクトが作成されます。

django-admin startproject mysite

すると、カレントディレクトリにmysiteのフォルダが作成されます。


$django-admin startproject mysite
$ls
mysite 

プロジェクトを作るのは問題がないと思います。
むしろ起動のほうが少しやっかいです。

djangoの起動

それではdjangoを起動しましょう。

mysiteのフォルダに移動して以下のコマンドを打ちます。


python3 manage.py runserver 8080

ポートを8080に指定して、djangoをサーバーとして立ち上げます。

cloud9-create-django_3

ちなみに・・・cloud9では一部のポート(8080,8081,8082)しかプレビューできません。

以下の公式サイトを参考にしてください。

AWS Cloud9 Integrated Development Environment (IDE) で実行中のアプリケーションをプレビューする

そしたら以下のどちらかをしましょう
・右上のポップアップのリンクを押す。
・Preview→Preview Run Application→Pop Out Into New Window

これでアクセスすると以下のエラーが出ます。

エラーが発生しました。これはなんでしょうか。

cloud9-create-django_4

調べてみるとsettings.pyのALLOWED_HOSTSという項目がDjango 1.5から追加されているようです。

で、これは接続元のホストを指定します。
指定したホストをアプリにアクセスするのを許可するのです。

エラーメッセージを良くみると、アクセスするにはアドレスを追加してくださいと書いてあります。

そのメッセージに示されているアドレスをコピーして貼り付けましょう

cloud9-create-django_5

そうしたらもう一回さっきのコマンドを打ちましょう

python3 -m manage.py runserver 8080

そしてアクセスすると・・・・

cloud9-create-django_6

これでとりあえず実行環境は整いました。

まとめ

いかがだったでしょうか?

cloud9を使うとポートが固定されるのが罠ポイントだったと思います。

また、普通にdjango1.5からホストの制限をかけているのも罠ポイント高いです。

以上になります。

みなさんのPythonライフがよりよくなるように祈ってますね!