我使用peewee定義了很多模型類。 ClassName.create_table()
可以生成表格,但只能有一個表格。我如何使用單個語句創建所有表?如何使用peewee創建模型中定義的所有表
6
A
回答
7
擴展coleifer的答案,並假設所有表都在一個分組模塊:
import inspect
import peewee
import tables
models = [
obj for name, obj in inspect.getmembers(
tables, lambda obj: type(obj) == type and issubclass(obj, peewee.Model)
)
]
peewee.create_model_tables(models)
9
Peewee有一個助手,將創建以正確的順序表,但你仍然需要在所有的車型明確地傳遞:
from peewee import *
db = SqliteDatabase(':memory:')
db.create_tables([ModelA, ModelB, ModelC])
1
這snipnet將創建的對象的當前模塊中定義的所有表:
import sys
for cls in sys.modules[__name__].__dict__.values():
try:
if BaseModel in cls.__bases__:
cls.create_table()
except:
pass
0
for cls in globals().values():
if type(cls) == peewee.BaseModel:
try:
cls.create_table()
except peewee.OperationalError as e:
print(e)
-1
Python 3的更新(以及每個像我一樣通過Google來解決此問題的人)。如果您有基於主peewee Model類的所有模型,你可以簡單地使用:
import peewee
models = peewee.Model.__subclasses__()
感謝this問題的想法。如果你的模型更加複雜,他們也會更詳細地介紹如何使它以遞歸方式工作。
相關問題
- 1. 如何使用peewee在模型FlaskDB中創建表?
- 2. 如何創建自定義的表型
- 3. 如何使用powerdesigner創建用戶定義的表類型15
- 4. 如何在Qooxdoo中創建自定義模型? (對於列表)
- 5. 如何在Java中創建自定義列表模型
- 6. 從SQL表定義創建django模型
- 7. 如何使用OpenNLP創建自定義模型?
- 8. 在peewee模型
- 9. 如何爲稍後定義的模型創建引用屬性?
- 10. Lua:如何在所有表上創建自定義方法
- 11. 如何將自定義方法添加到使用qx.data.marshal.Json.createModel創建的模型中?
- 12. 模型創建返回未定義沒有創建 - 風帆JS
- 13. 如何使用Spark-Scala中定義的模式創建行?
- 14. 定義在peewee
- 15. 如何使用k-ng模型創建所需的字段?
- 16. 如何使用JavaScript創建使用DOM模型的Html表?
- 17. 如何在SQL中創建表模型?
- 18. Django不爲我的自定義用戶模型創建表格
- 19. 的Django 1.9不能爲自定義用戶模型創建表
- 20. 如何在c中創建用戶定義的數據類型,如下所示?
- 21. Pyspark - 獲取使用ParamGridBuilder創建的模型的所有參數
- 22. 如何在django中創建自定義權限和組模型?
- 23. 如何在JavaFX 8中創建自定義3D模型?
- 24. 如何爲自定義屬性類型選擇創建自定義源模型?
- 25. Laravel使用具有模式的表創建模型類
- 26. 將自定義類添加到由Markdown使用javascript創建的所有表中
- 27. 如何使用模型在鈦中創建數據庫表?
- 28. Django非rel - 如何在模型中使用EmbeddedModelField創建表單?
- 29. 如何創建Mongoose模型的所有空值樣本?
- 30. 如何使用我自己的實體創建自定義模型
也許這個函數的文檔字符串可能出現在API文檔中? – Cilyan