def close_view(request): session = DBSession() task_id = int(request.matchdict['id']) task = session.query(Task).filter_by(id=task_id).first() task.closed = 1 session.add(task) request.session.flash('Task was successfully closed!') return HTTPFound(location=request.route_url('list'))
def new_view(request): if request.method == 'POST': if request.POST.get('name'): task = Task(request.POST['name'], 0) session = DBSession() session.add(task) request.session.flash('New task was succesfully added!') return HTTPFound(location=request.route_url('list')) else: request.session.flash('Please enter a name for the task!') return {}
def _initTestingDB(): from sqlalchemy import create_engine from myproject.models import (DBSession, Page, Base) # jiawzhang: 'sqlite://' means specify the db persistence as memory. engine = create_engine('sqlite://', echo=True) Base.metadata.create_all(engine) DBSession.configure(bind=engine) # jiawzhang: you have to introduce "transaction.manager" here because this is the unit test context instead of the web context, see details in ./models.py with transaction.manager: model = Page('FrontPage', 'This is the front page') DBSession.add(model) return DBSession
def _initTestingDB(): from sqlalchemy import create_engine from myproject.models import ( DBSession, Page, Base ) # jiawzhang: 'sqlite://' means specify the db persistence as memory. engine = create_engine('sqlite://') Base.metadata.create_all(engine) DBSession.configure(bind=engine) with transaction.manager: model = Page('FrontPage', 'This is the front page') DBSession.add(model) return DBSession
def _initTestingDB(): from sqlalchemy import create_engine from myproject.models import ( DBSession, Page, Base ) # jiawzhang: 'sqlite://' means specify the db persistence as memory. engine = create_engine('sqlite://', echo=True) Base.metadata.create_all(engine) DBSession.configure(bind=engine) # jiawzhang: you have to introduce "transaction.manager" here because this is the unit test context instead of the web context, see details in ./models.py with transaction.manager: model = Page('FrontPage', 'This is the front page') DBSession.add(model) return DBSession
def __init__(self, request): session = request.session #default username is None if 'login' in session: #log.debug("We can GET DATA FROM SESSION") #self.username = kwargs.pop('username',None) self.username = session['auth.userid'] self.mygroups = session['mygroups'] request.locale_name = session['locale_name'] self.enabled = session['enabled'] if self.username[0] != '@': self.email = session['email'] self.borndate = session['borndate'] self.validated = session['validated'] else: #log.debug(" We need to GET DATA FROM DB") user = Users.get_by_username(session['auth.userid']) self.username = user.username #this return a LIST of groups self.mygroups = [ 'g:%s' % g.groupname for g in user.mygroups ] session['mygroups'] = self.mygroups request.locale_name = user.locale session['locale_name'] = user.locale session['login'] = datetime.today() session['enabled'] = user.enabled if self.username[0] != '@': self.borndate = user.borndate self.email = user.email self.enabled = user.enabled self.validated = user.validated session['email'] = user.email session['borndate'] = user.borndate session['validated'] = user.validated session.save() transaction.begin() dbsession = DBSession() user.last_ip = request.environ['HTTP_X_REAL_IP'] user.last_login = datetime.today() dbsession.merge(user) transaction.commit()
def main(global_config, **settings): """ This function returns a Pyramid WSGI application. """ engine = engine_from_config(settings, 'sqlalchemy.') DBSession.configure(bind=engine) Base.metadata.bind = engine authn_policy = AuthTktAuthenticationPolicy('sosecret',callback=groupfinder , hashalg='sha512') authz_policy = ACLAuthorizationPolicy() config = Configurator(settings=settings, root_factory='.models.RootFactory') #config = Configurator(settings=settings) config.set_authentication_policy(authn_policy) config.set_authorization_policy(authz_policy) config.include('pyramid_jinja2') config.include('pyramid_sacrud',route_prefix='admin') settings = config.registry.settings settings['pyramid_sacrud.models'] = (('Project', []),) config.add_static_view('static', 'static', cache_max_age=3600) config.add_static_view('img', 'static/img', cache_max_age=3600) config.add_route('home', '/') config.add_route('login', '/login') config.add_route('logout', '/logout') config.add_route('index_submit', '/index_submit') config.add_route('trybd', '/test') config.add_route('game', '/game') config.add_route('account_info', '/account_info/{email}/{nick}') config.add_route('registration', '/registration') config.scan() return config.make_wsgi_app()
def validate_login(form, field): log = DBSession.query(User).filter(User.login == field.data).first() if log is None: raise ValidationError("Enter correct login")
def validate_pass1(form, field): log = DBSession.query(User).filter(User.login == form.login.data)\ .filter(User.password == field.data).first() if log is None: raise ValidationError("Enter a correct password")
def tearDown(self): del self.testapp from myproject.models import DBSession DBSession.remove()
def list_view(request): session = DBSession() tasks = session.query(Task).filter_by(closed=0).all() #rs = session.execute("select id, name from tasks where closed = 0") tasks = [dict(id=row.id, name=row.name) for row in tasks] return {'tasks':tasks}
def validate_login(form, field): log = DBSession.query(User).filter(User.login == field.data).first() if log is not None: raise ValidationError("This login is not available")
from pyramid.httpexceptions import HTTPNotFound from sqlalchemy.pool import NullPool from myproject.models import ( DBSession, Base, register, all_users, User, del_all, del_user, all_guys, add_guy ) engine = create_engine('sqlite:///gen_tree.db') DBSession.configure(bind=engine) Base.metadata.bind = engine Base.metadata.create_all(engine) #register("123123","123123","ccccc") register("sdf,","sdf","sdf") #del_user("123")
from pyramid.authentication import SessionAuthenticationPolicy from pyramid.config import Configurator from sqlalchemy import create_engine from pyramid.httpexceptions import HTTPNotFound from sqlalchemy.pool import NullPool from myproject.models import (DBSession, Base, register, all_users, User, del_all, del_user, all_guys, add_guy) engine = create_engine('sqlite:///gen_tree.db') DBSession.configure(bind=engine) Base.metadata.bind = engine Base.metadata.create_all(engine) #register("123123","123123","ccccc") register("sdf,", "sdf", "sdf") #del_user("123") all_guys() all_users() #del_all()