概要
Pythonプロジェクトの雛形を作成するツール
DjangoとBootstrapを使ったプロジェクトのテンプレートを用意しておいて、コマンドラインからプロジェクトを生成するといった感じで使用する
テンプレートはGitHubなどで公開されているものがある
※pipはパーミッションの問題が出る場合もあるので、その場合は前にsudoをつけて実行
インストール
pipでインストールする
pip install cookiecutter
テンプレートを指定してプロジェクトを生成
cookiecutter https://github.com/audreyr/cookiecutter-pypackage.git
テンプレートの指定は、大体その説明にやり方が書いてあるようなので従う。
プロジェクト作成時に、プロジェクト名とかメールアドレスなどの情報が聞かれるので、答えるとプロジェクト内に反映される。
この時に、リポジトリのクローンが、~/.cookiecuttersに作られるようだ。多分キャッシュ。
テンプレートの探し方
- GitHubでcookiecutterで検索する
- Djangoならこんなのも https://www.djangopackages.com/grids/g/cookiecutter/
動かしてみる
https://github.com/pydanny/cookiecutter-django
全部入りみたいなタイプ
DBがPostgreSQLなので、MySQLに変更して使う
ドキュメントが結構しっかり書かれてる
プロジェクトの生成
cd ~/dev
cookiecutter https://github.com/pydanny/cookiecutter-django.git
今回は「ホームディレクトリ/dev」にプロジェクトを作成することにする
質問は適当にやってもさほど問題ない。今回はmyasspとしておく
プロジェクト名のところだけ、ちょっと注意
プロジェクトに必要なライブラリをインストール
使用するDBはPostgreSQLなので設定を一部書きかえる。
~/dev/myapps/requirements/base.txt
このファイルを編集。
psycopg2==2.5.3
この行を
MySQL-python == 1.2.5
に変更する
cd ~/dev/myapps
pip install -r requirements/local.txt
必要なライブラリ類をまとめたテキストファイルを用意してくれているので、それを使ってインストール
このテンプレートではテスト環境、プロダクション環境などでライブラリをそれぞれ分けれるようになっている
requirementsに
test.txt
production.txt
local.txt
base.txt
がある
base.txtが全体共通ライブラリ、あとはテスト/プロダクション/ローカルで分けてある
この際、素のままでやったらPostgreSQL関連のライブラリでエラーがでた
インストールしていないせいかもしれない
アプリケーションの設定
DBを変更する
config/settings.py
DATABASES = values.DatabaseURLValue('postgres://localhost/myapps')
これをMySQLを使ったものに変更しておく
起動する
syncdb
python manage.py syncdb
通常のsyncdbを行う
ただし、southで管理しているモデルがあるようで、これだけでは完了しない
python manage.py migrate
これで初期設定は通るようだ
サーバを起動する
python manage.py runserver
アクセスする
自分のテンプレートを作る
実際作るところまではやらなかったけど、誰かのテンプレートをforkして作るってのがお手軽な感じ
いじるのもシンプルなのならそれほど難しくなさげなので、よくプロジェクトを作る人には良さそう
まとめ
- 会社などで、標準テンプレートなどを決めて運用する場合には良さそう
- 作りこまれたテンプレートは実装の参考にはなるけど、使うとなるとまず理解するのがめんどくさいことも
- たまにしか作らないならいらないかも(作る手間と定期的なメンテナンスが必要なため)