2010-08-19 4 views
2

SQLAlchemy m'a permis de créer un puissant utilitaire de base de données. Maintenant, je ne sais pas comment le déployer. Permettez-moi de vous expliquer comment est-il construit avec un exemple:Comment déployer une application 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) 

Comme vous pouvez le voir, ce que je veux mettre à la disposition est la dernière interface (Browser) où je les requêtes pour simplifier l'utilisateur final.

Si vous demandez simplement à chaque utilisateur d'ouvrir un shell Python et from application import Browser il semble que les avantages de la mise en commun de connexion ne sont pas réalisés, parce que chaque utilisateur crée une classe Session différente (par opposition à la création d'une instance session différente). Donc, devrais-je écrire un serveur auquel les utilisateurs se connectent? Ou, comment déploieriez-vous cette application hypothétique?

Merci.

Répondre

0

Le regroupement de connexions se fait dans la même instance python, donc quand vos utilisateurs se connectent de la base à la base, vous devez quand même écrire un petit serveur, si vous voulez l'utiliser. Vous pouvez également vous connecter directement à un serveur de base de données, ce qui donne (au moins) une connexion par utilisateur. Cela dépend de ce que vous voulez réaliser.

Questions connexes