Как развернуть приложение Python / SQLAlchemy? - PullRequest
2 голосов
/ 20 августа 2010

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 instance).

Итак, я должен написать сервер, к которому подключаются пользователи?Или как бы вы развернули это гипотетическое приложение?

Спасибо.

1 Ответ

0 голосов
/ 17 сентября 2010

Пул соединений происходит внутри одного и того же экземпляра python, поэтому, когда ваши пользователи подключаются с удаленного компьютера к базе данных, вам все равно нужно написать небольшой сервер, если вы хотите его использовать.Вы также можете подключиться напрямую к серверу базы данных, в результате чего (по крайней мере) одно соединение на пользователя.Зависит от того, чего вы хотите достичь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...