Django
Heroku

Django入門にはDjango Girls Tutorialがおすすめ

More than 1 year has passed since last update.

Django Girls Tutorial

Djangoのチュートリアルをいろいろ探してみた結果、「Django Girls Tutorial」がとても良心的に感じました。
Web開発の経験がない人でも一人で進められるのではと思うほどの丁寧さでした。

  • 英語版
  • 日本語版
  • よかったところ
    • 基本的な部分だけシンプルにさらうことができる
    • deprecatedな部分がなさそう
    • 数時間でおわる
    • ほとんどの用語に丁寧な説明がある
  • チュートリアルの概要

    • Django以前の背景知識
      • Internetとは
      • Comannd lineとは
      • Pythonとは
    • Djangoのインストール
    • プロジェクト、アプリケーション立ち上げ
    • DB,モデル,ORMについて
    • Django URLs,Viewについて
    • Herokuデプロイ
    • など

これをやった後、本家のチュートリアルや他のサイトで勉強するとスムーズかなと思いました。
コードはこことかに上がっていて安心。

その他のDjangoチュートリアルまとめ

チュートリアルのおおまかな流れ

これ以降はチュートリアルに沿ってやったことや参考にしたURLの備忘録。(大幅にはしょってますが)

  • 環境とバージョン
    • OS:OS X
    • Python:3.5
    • Django:1.10

Djangoのセットアップ

virtualenvで仮想環境の構築と実行

$python3 -m venv myvenv
$source myvenv/bin/activate

Djangoのインストール

$pip install django~=1.10

プロジェクト作成(mysiteプロジェクト)

$ django-admin.py startproject mysite

いろいろファイルが作成される。
mysite/settings.pyでルートディレクトリと利用するDBを設定して、migrateする

$ python manage.py migrate

アプリケーションとモデル作成

Djangoでは、一つのプロジェクトが複数のアプリケーションで構成されるらしい。
以下のコマンドでmysiteプロジェクト以下にblogアプリケーションのフォルダとファイルが作成される。

$ python manage.py startapp blog

mysite/settings.pyでアプリケーションを追加したことを定義し、blog/models.pyでauthor,title,textなどをもつPostモデルを定義

作成したモデルをDBに反映

$ python manage.py makemigrations blog
$ python manage.py migrate blog

ローカルでのサーバー立ち上げをするとhttp://127.0.0.1:8000/adminでアクセスが可能に

$ python manage.py runserver

Admin

blog/admin.pyを編集しモデルをAdminページで管理可能にする。
以下のコマンドsuperuserが作成できる。migrateも忘れずに

$ python manage.py createsuperuser
$ python manage.py migrate blog

herokuデプロイ

Heroku利用に必要なライブラリのインストールや依存関係の宣言など

$ pip install dj-database-url gunicorn whitenoise
$ echo 'psycopg2==2.5.4' >> requirements.txt
$ echo 'web: gunicorn mysite.wsgi' > Procfile
$ echo python-3.5.2 >runtime.txt

以下のファイルを編集してからgit init/add/commit

  • mysite/local_settings.py
  • mysite/settings.py
  • mysite/wsgi.py

そのあとは、Herokuに登録してpushして、migrateとsuperuserの設定してできあがり!

$ heroku create HEROKU-APP-NAME 
$ git push heroku master
$ heroku run python manage.py migrate
$ heroku run python manage.py createsuperuser

Cannot run more than 1 Free size dynos.とかいうエラーでたら、他のコンソールでのherokuアクセスしてることに怒られてるから、他のコンソールでのアクセスを終了させる(解説)

最後に

一応GitHubにあげました。