Heroku で Django を使ってみたい(01)

この記事は、Django Girls Tutorial の記事を参考に書いています。

下準備 ~ Ubuntu をインストール { Linux ( Ubuntu ) on Windows }

まず、windows10 を使って、Pyhton の勉強をするために、Ubuntu のコマンドだけ使えるアプリをストアからインストールしています。

 

いちおう、Windows上でも仮想環境の構築は可能なようですが、何かと Mac OS や Linux の方が不具合というか、行き詰まることが少なかったので今回は Ubuntu を使ってやっていこうと思います。

 

まずは、作業ディレクトリを作成して、そのディレクトリ以下に移動します。

 

$ mkdir myProject
$ cd myProject

 

仮想環境の構築

$ virtualenv venv

 

仮想環境の起動

$ source venv/bin/activate

 

仮想環境の終了

$ deactivate

 

Django をインストールして、ファイル構造を作成する

 

最後のピリオドが重要らしいので、忘れないようにしましょう。

$ django-admin startproject mysite .

 

以下のようなファイル構造が出来上がりました。

結構、重要な部分なので意識していくと理解しやすくなります。

djangogirls
├── manage.py
└── mysite
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py

 

manage.py は管理用スクリプトです。

ローカルでWebサーバーを疑似的に動かします。

 

settings.py はサイトの設定ファイルです。

 

urls.py は URL を設定します。

 

実際にアプリなどを作りながら、使ってみた方が分かると思いますので、ここでの細かい説明は省略します。

 

 

言語とタイムゾーンを設定する

直接、アプリなどのデプロイには関係ありませんが、いちおう日本語に設定して日本時間に合わせておいた方が後々便利です。

 

上記のファイル構造を参考にして、mysite ディレクトリ以下の settings.py を変更します。

LANGUAGE_CODE = 'ja-JP'

TIME_ZONE = 'Asia/Tokyo'

USE_TZ = False

 

 

データベースの設定

mysite / settings.py を開くと、デフォルトで以下のセットアップになっています。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

 

Django Girls Tutorial 通りに行くとここで、sqlite3 というデータベースを設定しているのですが、Heroku と連携するためには PostgreSQL を使わざるを得ません。( Heroku が PostgreSQL を使用しているため)

このへんは自分もまだ曖昧なので、深くは言及できませんが、いちおう自分のテストアプリはデフォルトのままでも Heroku 上で動作しています。

 

そして、マイグレーションして、このブログアプリにデータベースを設定します。

 

上記のファイル構造の図を参考にして、manage.py ファイルのある、djangogirls ディレクトリ上で、

$ python manage.py migrate

を実行します。

 

そして、

Operations to perform:
  Apply all migrations: admin, contenttypes, auth, sessions
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying sessions.0001_initial... OK

のような表記が出れば成功です。

 

そして、また djangogirls ディレクトリ上で

$ python manage.py runserver

を実行して、普段使っているブラウザで http://127.0.0.1:8000/ にアクセスすれば、

と、表示されます。

 

とりあえず、成功です。

コメント

タイトルとURLをコピーしました