Arreglado un fallo en la creación de usuarios
[webpysample.git] / db.py
1 from sqlalchemy import *
2 from sqlalchemy.ext.declarative import declarative_base
3 from sqlalchemy.orm import sessionmaker, scoped_session
4
5 from hashlib import sha256 as sha
6
7 import config
8
9 Base = declarative_base()
10 metadata = Base.metadata
11
12 class Test(Base):
13     __tablename__ = 'test'
14
15     id = Column(Integer, primary_key=True)
16     test = Column(String(128))
17     atime = Column(DateTime(), nullable=False, server_default=text('current_timestamp'))
18
19     def __init__(self, test):
20         self.test = test
21
22 class User(Base):
23     __tablename__ = 'users'
24
25     name = Column(String(60), primary_key=True)
26     password = Column(String(128))
27
28     def __init__(self, name, password):
29         self.name = unicode(name)
30         self.set_password(password)
31
32     def set_password(self, password):
33         self.password = unicode(sha(password).hexdigest())
34
35     def auth(self, password):
36         return self.password == sha(password).hexdigest()
37
38     def __unicode__(self):
39         return '<User "%s">' % self.name
40
41 def connect(database=config.DB):
42     db = create_engine(database, echo=False)
43     session = scoped_session(sessionmaker(bind=db))
44     return session
45
46 def create(database=config.DB):
47     db = create_engine(database, echo=False)
48     metadata.create_all(db)
49
50 if __name__ == '__main__':
51     create()
52