Difference between revisions of "Pyramid"
Jump to navigation
Jump to search
Rafahsolis (talk | contribs) |
Rafahsolis (talk | contribs) |
||
| Line 63: | Line 63: | ||
session.close() | session.close() | ||
</source> | </source> | ||
| + | |||
| + | == router == | ||
| + | edit __init__.py from projectnamefolder/projectnamefolder. Example: | ||
| + | <source lang="python"> | ||
| + | from pyramid.config import Configurator | ||
| + | from sqlalchemy import engine_from_config | ||
| + | |||
| + | from .models import ( | ||
| + | DBSession, | ||
| + | Base, | ||
| + | ) | ||
| + | |||
| + | |||
| + | 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 | ||
| + | config = Configurator(settings=settings) | ||
| + | config.include('pyramid_chameleon') | ||
| + | config.add_static_view('static', 'static', cache_max_age=3600) | ||
| + | config.add_route('home', '/') | ||
| + | config.add_route('roms','roms/{id}') | ||
| + | config.add_route('create_session','roms/{id}/sessions') | ||
| + | config.scan() | ||
| + | return config.make_wsgi_app() | ||
| + | </source> | ||
Latest revision as of 19:32, 13 February 2016
Pyramid with postgresql and SQLAlchemy
Requirements
- Pip
- PostgreSQL
- Virtualenv (optional VirtualenvWrapper)
- SQLAlchemy (sudo apt-get install python-dev && pip install SQLAlchemy)
Install[edit]
easy_install "pyramid==1.6.1"
or
sudo apt-get install python-pyramid
Create proyect[edit]
pcreate --list # shows options pcreate -s alchemy indeed
run development server[edit]
pserve development.ini
Postgresql database config[edit]
in production.ini and development.in set:
sqlalchemy.url = postgresql://user:password@host/indeed
Migrations[edit]
from project folder:
initialize_proyectname_db
Insert into db script[edit]
import sys
from models import Rooms, DBSession
from sqlalchemy import engine_from_config
from pyramid.paster import get_appsettings, setup_logging
from sqlalchemy.orm import (
scoped_session,
sessionmaker,
)
from zope.sqlalchemy import ZopeTransactionExtension
config_uri = '../development.ini'
setup_logging(config_uri)
engine = engine_from_config(get_appsettings(config_uri), 'sqlalchemy.')
Session = sessionmaker(bind=engine)
session = Session()
try:
a = int(sys.argv[1])
except:
print "Parametro erroneo, debe especificar id numerico", sys.argv
exit()
new = Rooms(id=a)
try:
session.add(new)
session.commit()
print "Insertada Room", new.id
except Exception as e:
print "Error insertando Room {romid}: {error}".format(romid=new.id, error=e)
finally:
session.close()
router[edit]
edit __init__.py from projectnamefolder/projectnamefolder. Example:
from pyramid.config import Configurator
from sqlalchemy import engine_from_config
from .models import (
DBSession,
Base,
)
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
config = Configurator(settings=settings)
config.include('pyramid_chameleon')
config.add_static_view('static', 'static', cache_max_age=3600)
config.add_route('home', '/')
config.add_route('roms','roms/{id}')
config.add_route('create_session','roms/{id}/sessions')
config.scan()
return config.make_wsgi_app()