Djangoラッパーを使ってデータベースをいぢる。 | 世界的日曜WEBプログラマー日記

世界的日曜WEBプログラマー日記

一年後に世界的なWEBサービスを運営するにはどうすればいいのか書いていく(予定)


Django使ってんだから昔みたいにimport MySQLdbして、とかヘボイ事してんじゃねぇぜ
http://www.djangobook.com/en/2.0/chapter16/
みたいな記事を見つけた。じゃあ、Djangoラッパーを使おう!と思ったけど中々うまくいかない。

解決策を見つけたので以下に示します。
こいつを使えばDjangoラッパーを介してガシガシモデルをいぢれます。あー苦労した。

今webappsというDjangoのプロジェクトを/home/ytodoroki/dynaptico/maishoku/の下に作成したとします。
プロジェクトの中にocrというアプリを作成しました。
そしてwebapps/ocr/models.pyを編集してDownloadというモデルを作ったとします。

 $ django-admin startproject mysite
$ cd mysite
$ django-admin startapp ocr
$ emacs models.py # Downloadを作成(名前は任意。以下の説明のため)

そのモデルに好きなところからアクセスしたり、いぢったりするにはスクリプトの最初で以下のように色々なモジュールをimportする必要があります。

import sys, os
sys.path.append( '/home/ytodoroki/dynaptico/maishoku/webapps/' )
os.environ['DJANGO_SETTINGS_MODULE'] = 'webapps.settings'
import settings
from django.core import management
management.setup_environ( settings )
from ocr.models import Download


ミソはos.environをきちんと定義し、そのあとでdjango.coreのmanagementを使って環境をきちんと読み込むことである。

株式会社OctOpt
コンピューターサイエンス会社OctOptの技術公式ブログ
等々力 康弘
@rocky_house