Skip to main content
 首页 » 编程设计

python之如何部署 Python/SQLAlchemy 应用程序

2025年05月04日11zhujiabin

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 shell 和 from application import Browser 似乎连接池的优势没有实现,因为每个用户创建不同的 Session 类(与创建不同的 session 实例相反)。

那么,我应该编写一个用户连接的服务器吗?或者,您将如何部署这个假设的应用程序?

谢谢。

请您参考如下方法:

连接池发生在同一个 python 实例中,因此当您的用户从远程连接到数据库时,如果您想使用它,您无论如何都必须编写一个小型服务器。您还可以直接连接到数据库服务器,从而(至少)为每个用户建立一个连接。取决于您想要实现的目标。