2016-05-25 1 views
0

私はdjangoをORMとして使っていて、eclipseを使ってdjangoをロードし、プロジェクトを作成し、settings.pyファイルでデータベース接続をセットアップし、ORMとしてdjangoを使用

manage.py inspectdb 

だから今は(すべてに馴染みの)構造が残っています成功しmodels.pyファイルを作成したコマンド

プロジェクト名

---プロジェクト名

------settings.py

------urls.py

------wsgi.py

---manage.py

--- models.com

私はdjangoを使いたいと思う方法は、models.pyで作成されたデータベースとやりとりするための良い方法です(webserviceや安らかなapiなどではありません)

i tr yのようないくつかの簡単なコード:

import models 
import django 
django.setup() 
my_model = models.SomeDefinedModel.objects.all() 
for mod in my_model: 
    print mod 

私はいくつかの例外を取得:

django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet. 

私はがやりたいすべてが

SomeDefinedModel 

は、ビルドであることをデータベース後ろのテーブルをクエリでありますfrom(inspectdbコマンドを使用)

これは可能ですか?私はインターネット上で永遠に検索してきましたが、これをアクセスレイヤーとして使用する方法を見つけるようです。

ありがとう -

答えて

0

これは非常に迷惑です。私はそれを数回、私のためにdjangoアプリで使用されている自分のデータを管理するスクリプトのためだけにしています。本当にハック感があり、ORMが欲しい場合は、Djangoを使用することはお勧めできません。これは、必要としない他のすべてのものをロードするためです。 ORMが必要な場合は、SQLAlchemyを参照してください。それはまだあなたを説得しなかった場合

は、ここで私はデーモンのためにそれをやった方法です:

あなたは、あなたが持っている、あなたの設定を見つけるために、Djangoに伝え、環境変数を設定して最初の何をすべきかdjangoにセットアップを指示する。その後、Djangoのものを使い始めることができます。これらの作業がすべて完了したら、モデルのインポートを開始できます。 は、ここで私はそれをした方法の例である:あなたがウェブサイトやWebアプリケーションを構築していない場合は、再度

import os 
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "yourproject.settings") 
import django 
django.setup() 
#Rest of your code 

、私は重くジャンゴを使用しないことをお勧めします。これはdjangoの1%だけを使いたいときにアプリケーションを100倍大きくします。 SQLAlchemyはさらに良いORMかもしれません。私はこの数日間でそれをもっと楽しんできました。もっと複雑なSQLを書くことができるように感じます。SQLAlchemyへのリンク:http://www.sqlalchemy.org/

+1

Django ORMは、あなたに必要なものはほとんどありません。ジョブには適切なツールを使用します。 –

+1

すばらしいおかげで、私はそれをチェックします! – user1772250

関連する問題