2016-05-25 19 views
0

我正在探索使用django作爲ORM並且有一個基本的問題,使用eclipse,我能夠加載django,創建項目,在settings.py文件中設置我的數據庫連接並運行使用django作爲ORM

其成功創建models.py文件
manage.py inspectdb 

命令所以現在我留下結構(大家都熟悉的)

項目名

---項目名

------settings.py

------urls.py

------wsgi.py

---manage.py

---models.py

現在我想使用django的方式只是一個更好的方式來與在models.py中創建的數據庫接口(而不是作爲webservice或restful api或類似的東西)

當我tr Ÿ一些簡單的代碼,如:

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的東西。完成所有這些後,您可以開始導入模型。 下面是我如何做一個例子:

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

同樣,如果你沒有建立一個網站或web應用程序,我嚴重建議不要使用Django。當你只想使用django的1%時,這會使你的應用程序變大100倍。 SQLAlchemy甚至可能是一個更好的ORM。過去幾天我一直在玩這個遊戲,我覺得我可以編寫更復雜的SQL。鏈接到SQLAlchemy:http://www.sqlalchemy.org/

+1

同意。 Django ORM帶來了各種各樣的好東西,幾乎沒有你需要的東西。使用正確的工具來完成這項工作。 –

+1

非常感謝,我會檢查出來的! – user1772250

相關問題