2010-08-19 111 views
2

SQLAlchemy允許我創建一個強大的數據庫實用程序。現在我不知道如何部署它。讓我來解釋它是如何用一個例子建:如何部署Python/SQLAlchemy應用程序?

# objects.py 
class Item(object): 
def __init__(self, name): 
    self.name = name 

# schema.py 
from sqlalchemy import * 
from objects import Item 
engine=create_engine('sqlite:///mydb.db') 
metadata = MetaData(engine) 
item_table = Table(
'items', metadata, 
Column('id', Integer, primary_key=True), 
Column('name', String(100)) 
) 

item_mapper = mapper(Item, item_table) 
metadata.create_all() 

# application.py 
from schema import engine, Item 
from sqlalchemy import * 

Session = sessionmaker(bind=engine) 

class Browser(object): 
def __init__(self): 
    self.s = Session() 
def get_by_name(self, name): 
    return self.s.query(Item).filter_by(name=name) 

正如你所看到的,我想提供的是最後一個接口(Browser),我簡化了最終用戶的查詢。

如果你只是要求每個用戶打開一個Python的外殼和from application import Browser似乎連接池的優點都沒有實現,因爲每個用戶創建不同的Session類(而不是創建一個不同的session實例)。

那麼,我應該寫一個服務器,用戶連接到?或者,你將如何部署這個假設的應用程序?

謝謝。

回答

0

連接池發生在同一個python實例中,所以當你的用戶從遠程連接到數據庫時,如果你想使用它,你必須編寫一個小型服務器。您也可以直接連接到數據庫服務器,從而導致每個用戶(至少)一個連接。取決於你想達到的目標。