ちょくちょくDjangoを触っている && 構成などメモ

6月くらいからちょくちょくDjangoでWebサイトを作っているので、 詰まったところとかハマったところをメモしていこうと思う。 Python3.4 + Django1.8 で構成している。

ディレクトリ構成について

ざっくりと、こんな感じ。

├── django_project
│   ├── manage.py
│   ├── pytest.ini
│   ├── django_project
│   ├── appA
│   ├── appB
│   └── templates
├── requirements.txt
├── reqs
│   ├── common.txt
│   ├── dev.txt
│   └── prod.txt
├── Dockerfile
├── docker-compose.yml
└── run_web.sh

こちら、参考にしたのは以下のページや書籍である。

上のページは、ありがたいことにディレクトリ構成以外にも詳しく述べられており、大変参考になった。 Two Scoops of Djangoはちょうど1.8版が出ていたので、購入してみた。

Docker-composeを試している。 今のところのdocker-compose.ymlはこのような感じ。 開発しながら、nginxやredisを追加する予定

storage:
  image: busybox
  volumes:
    - /var/lib/postgresql/data
    - /data
  command: "true"

db:
  image: postgres
  volumes_from:
    - storage

web:
  build: .
  command: ./run_web.sh
  volumes:
    - /vagrant:/code
  ports:
    - "80:8080"
  links:
    - db
  volumes_from:
    - storage

run_web.shにはmigration関連のコマンドとrunserverのコマンドが書いてある。gunicornやらを導入する際には書き換える。

その他メモる予定の事柄

  • py.testについて
    テストにはpy.testを用いる。python標準のunittestしか使ったことがないので、練習も兼ねている。
  • jinja2 について テンプレートエンジンにはJinja2を用いる。Django1.8からは標準でJinja2を選べるようになったが、設定でいろいろ困ることになったので、結局1.7以前のようにdjango-jinjaパッケージを用いた。
  • CIについて wercker か drone を用いるので、それについても書く。droneは試したが、CIサービスを使うほうがラクかもしれない。
  • CSS, JSについて 直接Djangoとは関係がないが、メモは残そうと思う。
  • Git 運用について こちらも直接Djangoとは関係がないが、メモは残そうと思う。