2010-11-16 140 views
3

我寫了一些Python代碼來完成任務。目前,我有4到5個課程存儲在單獨的文件中。我現在想把這整個事情變成一個數據庫支持的Web應用程序。我一直在閱讀Django的教程,到目前爲止,我的印象是我需要手動指定我使用的每個「模型」的字段和類型。這對我來說有點令人驚訝,因爲我期待着某種ORM能力,它只需要我已經定義的現有類,並以某種方式將它們映射到數據庫上,方式是從我這裏抽象出來。Python應用程序Django的網絡應用程序

這是不是這種情況?我錯過了什麼嗎?它看起來像我需要指定文件'models.py'中的所有字段和類型。

好吧,現在超出這些細節,是否有人有任何關於將面向對象的桌面應用程序遷移到Web應用程序的最佳方法的一般技巧?

謝謝!

回答

1

Django的ORM:它將類映射到表。你還期望什麼?儘管如此,在你使用它們之前,需要有某種方式來指定這些字段是什麼,並且這是通過models.Model類和各種models.Field子類管理的。您當然可以將您的類用作mixin,以便在字段定義之上使用現有的業務邏輯。

+0

還好這是一種荒謬的。我正在使用一些相當複雜的類和一些使用自己更復雜的類的外部庫。你是否建議我必須通過這些類中的每一個來手動挖掘它們,並將它們歸結爲由簡單的表和字段組成的數據庫模式,並且ORM不能爲我做到這一點?如果這是真的,那將是非常不幸的。 – mindthief 2010-11-19 01:56:55

0

如果您正在考慮基於數據庫後端的Web應用程序,您必須必須指定要存儲的數據的字段以及要存儲的值的類型。

有一個抽象概念,將db轉換成django models.py格式。但我不知道任何內省python類並將任意數據存儲到數據庫。那將如何工作?現在,這些物體是否被儲存爲鹹菜?

0

您將不得不檢查輸出,但是您可以讓Django通過一次性自檢從現有數據庫自動創建模型。

從下面的鏈接兩者,你將建立數據庫settings.py中,然後調用

python manage.py inspectdb 

這將轉儲樣本models.py文件到標準輸出供你參考。爲了創建的文件,只需將輸出重定向

python manage.py inspectdb > models.py 

中查看:

http://docs.djangoproject.com/en/dev/howto/legacy-databases/?from=olddocs#auto-generate-the-models