DISTRICT 37

なにか

Djangoをherokuで動かす

表題のことがやりたかった。codeanywhereからでもできたのがうれしい。

herokuチュートリアル

環境構築に関しては割愛。

devcenter.heroku.com

で、サインアップできたとして、ここをやればなんとなく流れがわかる。このチュートリアルの例がDjangoだったのでこれを参考にやればよい。ソースがわからなくなったらgitを見に行けばいい。良いお手本なので、一回は手を動かすに越したことはない。

流れとしてはこんな感じ

  • git clone
  • heroku login
  • heroku create
  • git push heroku master

微妙に違っているところもあれば、中には有料のaddonといった簡単には試せないものもある。これでおおむね理解ができる。

django on heroku

で、実際に自分でやるにはちょっとしたコンフィグが必要になる

heroku本家による設定ガイドはこちら

devcenter.heroku.com

  • プロジェクト構成

チュートリアルで落としたgitのソースを見るとプロジェクトルートをgitのルートにしたらいい事がわかる。ほかのディレクトリ構成だとだめなのかはわからないので、素直にチュートリアルのとおりやっておいたら良い。「django-admin startproject XXX」とやってgitの環境もそろったところでこんなディレクトリ構成になるかと

XXX
  |-.git
  |-XXX
  - manage.py
  - .gitignore
  - README.md


  • gunicornのインストール

チュートリアルで見る限りgunicornで動かす事になるのでインストール。インストールはPipfileに書き込むためにもpipenvコマンドを使ってインストール。

pipenv install gunicorn


  • Procfileの作成

これも必要なので作っておく

echo 'web: gunicorn XXX.wsgi' > Procfile

XXXの部分はstartprojectしたプロジェクト名になる


  • django_herokuのインストール

さらにherokuで動かす用のライブラリもいれる。こちらもpipenvを使ってインストール

pipenv install django-heroku


  • settings.pyの編集

インストールが終わったらsettings.pyに下記の項目を追記。設定ガイドにはimportの文が無いので注意

import django_heroku
django_heroku.settings(locals())

あとはpython manage.py startappでもなんでもやってアプリケーションを作ったらいい。

codeanywhereでもできる

という事で、これらをcodeanywhereでもやってみたらできた。shellが動くのでなんでもできちゃう形だ。herokuCLIもcodeanywhere上にインストールできる。なんか途中で環境変数の設定でダメだった箇所があるけど、どの場面だったかは覚えていない。やったことは覚えてるので、そのコードはこちら

echo 'export LC_ALL=C.UTF-8' >> .bashrc
echo 'export LANG=C.UTF-8' >> .bashrc

文字列を見る限り文字コードの設定とかそういったところかと。

これでiPadによる開発と公開ができないわけではなくなったが、正直iPadでやる開発はレスポンスとかそういうところでいろいろつらい。キーボードでもあれば比較的効率は良いのかもしれない。ただ、手持ちのBlueToothキーボードがどうしてもUS配列になっちゃうんですよねぇ。これがなんとかなればいうことないんですがね。