我覺得很奇怪,人們不使用依賴注入來管理他們對SQLAlchemy的使用。根據文檔,需要對錶進行引用來執行數據庫操作(如插入),但只有在創建表後纔會引用該表!我是否需要依賴注入來使用SQLAlchemy?
>>> from sqlalchemy import Table, Column, Integer, String, MetaData, ForeignKey
>>> conn = engine.connect()
>>> metadata = MetaData()
>>> users = Table('users', metadata,
... Column('id', Integer, primary_key=True),
... Column('name', String),
... Column('fullname', String),
...)
>>> ins = users.insert()
>>> result = conn.execute(ins)
根據上述snippet,一個需要conn
連接對象,該users
表對象和ins
:
這意味着數據庫連接,數據庫操作和表的定義必須在同一個文件來實現表達式對象來執行與數據庫的完整事務。除非使用某種形式的依賴注入,否則三者必須位於同一個文件中。
人們是如何構建自己的代碼來使其易於管理的?
你可以將你的'Table'對象存儲在不同的模塊中,甚至包中並導入它,爲什麼它們應該在同一個文件中? –
每次文件導入時,表格都會正確創建? – dopatraman
不,模塊對象是在第一次導入時創建的,接下來它會明顯使用緩存的對象 –