更新: | 2013-10-15 |
---|---|
バージョン: | 0.1.3 |
作者: | @voluntas |
URL: | http://voluntas.github.io/ |
自分が Django で開発/テスト/デプロイする上で色々便利そうな知識をまとめていく
- Ansible を使った自動デプロイの方法
- pytest を使ったテストランナのデフォルト設定
- PyMySQL + Gevent を使った非同期化
- Django + supervisor を使った監視
- nginx + uwsgi + django のデプロイ方法
- Django + Celery
- Sentry + Django コトハジメ
- Django + 非同期ワーカー コトハジメ
- Django + Haystack + Elasticsearch コトハジメ
- Django + Haystack + Elasticsearch + Kuromoji コトハジメ
- Gargoyle コトハジメ
- uWSGI
- http://projects.unbit.it/uwsgi/
- andrewgodwin / south — Bitbucket
- https://bitbucket.org/andrewgodwin/south/
- toastdriven/django-tastypie
- https://github.com/toastdriven/django-tastypie
- django-debug-toolbar/django-debug-toolbar
- https://github.com/django-debug-toolbar/django-debug-toolbar/tree/master
- dcramer/django-devserver
- https://github.com/dcramer/django-devserver
- esnme/ultrajson
- https://github.com/esnme/ultrajson
- celery/celery
- https://github.com/celery/celery
- mher/flower
- https://github.com/mher/flower
- martinrusev/django-redis-sessions
- https://github.com/martinrusev/django-redis-sessions
- sebleier/django-redis-cache
- https://github.com/sebleier/django-redis-cache
- tomchristie/django-vanilla-views
- https://github.com/tomchristie/django-vanilla-views/tree/master
- kmike/django-widget-tweaks
- https://github.com/kmike/django-widget-tweaks
nginx + uwsgi がまぁ安定して早いらしいということで、設定を見ていく
uwsgi は gevent を使用しないプロセスワーカーモデルで
バージョン: | 1.5.4 |
---|
settings.py を開発用と分けたい、ただし本番の settings.py を上書きする形で使いたい。
- settings.py で local_settings.py を import して上書きする
- local_settings.py で settings.py を from settings import * 使って上書きする
settings.py をそのまま使うのでは無く、 settings というアプリを作りそこに最低限必要な base.py を作るという戦略がよさそうである。
project/ core/ # ここに settings.py 置かない settings/ base.py
さらに settings アプリの下に開発用、ステージング、CI など用に色々 settings を残すのがよさそう。
settings/ base.py develop.py ci.py
アプリを作った場合は python manage.py --settings=settings.develop などと指定する必要がある。
開発関連の設定が含まれているのが develop とする。django-debug-toolbar などが含まれる想定である。 さらにデータベースを MySQL 等では無く SQLite を使うようにする。
ここで develop.py は base.py の設定を全て読み込むようにする
from .base import *
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': 'develop.db',
}
}
try:
from local_settings import *
except:
pass
さらに develop.py の一番下には local_settings.py を読み込むようにしておく
この設定を追加することで気軽に「自分だけの設定」を読み込ませることが出来るようになる。 開発ツールで自分だけがよく使うものなどはここに入れるのが良い。
manage.py は「開発」限定でしか使わないように改造する
#!/usr/bin/env python
import settings.develop
from django.core.management import execute_manager
execute_manager(settings.develop)
- settings アプリを追加する
- settings/base.py を定義する
- settings/develop.py では base を全て引き継ぎ local_settings.py を読み込むようにする
- develop 以外にも好きに設定を追加して良い
- パーフェクトな Django の設定ファイル -- Kosei Kitahara's Blog
- http://surgo.jp/2010/02/django.html
- Django How-To: Add Debugging Apps to Your Local Settings
- http://blog.christopherlawlor.com/2010/06/django-how-to-add-debugging-apps-to-your-local-settings/
- django - Local setting for INSTALLED_APPS using Fabric - Stack Overflow
- http://stackoverflow.com/questions/9392540/local-setting-for-installed-apps-using-fabric
- Test-Driven Web Development with Python
- http://chimera.labs.oreilly.com/books/1234000000754/index.html
- rtfd/readthedocs.org
- https://github.com/rtfd/readthedocs.org