26
23

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

cookiecutterを使ってみる

Posted at

概要

Pythonプロジェクトの雛形を作成するツール
DjangoとBootstrapを使ったプロジェクトのテンプレートを用意しておいて、コマンドラインからプロジェクトを生成するといった感じで使用する
テンプレートはGitHubなどで公開されているものがある

※pipはパーミッションの問題が出る場合もあるので、その場合は前にsudoをつけて実行

インストール

pipでインストールする

pip install cookiecutter

テンプレートを指定してプロジェクトを生成

cookiecutter https://github.com/audreyr/cookiecutter-pypackage.git

テンプレートの指定は、大体その説明にやり方が書いてあるようなので従う。
プロジェクト作成時に、プロジェクト名とかメールアドレスなどの情報が聞かれるので、答えるとプロジェクト内に反映される。
この時に、リポジトリのクローンが、~/.cookiecuttersに作られるようだ。多分キャッシュ。

テンプレートの探し方

動かしてみる

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して作るってのがお手軽な感じ
いじるのもシンプルなのならそれほど難しくなさげなので、よくプロジェクトを作る人には良さそう

まとめ

  • 会社などで、標準テンプレートなどを決めて運用する場合には良さそう
  • 作りこまれたテンプレートは実装の参考にはなるけど、使うとなるとまず理解するのがめんどくさいことも
  • たまにしか作らないならいらないかも(作る手間と定期的なメンテナンスが必要なため)
26
23
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
26
23

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?