Web2py Dal integration for Bottle.
Project description
Bottle-DAL is a plugin that integrates Web2py DAL Database Abstraction Layer
with your Bottle application. It automatically connects to a database at the
beginning of a request, passes the database handle to the route callback and
closes the connection afterwards.
To automatically detect routes that need a database connection, the plugin
searches for route callbacks that require a `db` keyword argument
(configurable) and skips routes that do not. This removes any overhead for
routes that don't need a database connection.
Usage Example::
from bottle import route, view, run, debug, install
from bottle_dal import DALPlugin, Field
def define_tables(db):
"""My tables definitions here"""
db.define_table('person',Field('name','string'))
install(DALPlugin('sqlite://storage.sqlite',
define_tables = lambda db: define_tables(db)))
@route('/')
def index(db):
""" Index Example """
if db(db.person.id>0).count()==0:
db.person.insert(name='James')
db.person.insert(name='Michael')
db.person.insert(name='Steve')
db.person.insert(name='Robert')
db.commit()
persons = db(db.person.id>0).select()
return dict(persons=persons.json())
if __name__ == '__main__':
debug(True)
run(host='localhost', port=8080)
with your Bottle application. It automatically connects to a database at the
beginning of a request, passes the database handle to the route callback and
closes the connection afterwards.
To automatically detect routes that need a database connection, the plugin
searches for route callbacks that require a `db` keyword argument
(configurable) and skips routes that do not. This removes any overhead for
routes that don't need a database connection.
Usage Example::
from bottle import route, view, run, debug, install
from bottle_dal import DALPlugin, Field
def define_tables(db):
"""My tables definitions here"""
db.define_table('person',Field('name','string'))
install(DALPlugin('sqlite://storage.sqlite',
define_tables = lambda db: define_tables(db)))
@route('/')
def index(db):
""" Index Example """
if db(db.person.id>0).count()==0:
db.person.insert(name='James')
db.person.insert(name='Michael')
db.person.insert(name='Steve')
db.person.insert(name='Robert')
db.commit()
persons = db(db.person.id>0).select()
return dict(persons=persons.json())
if __name__ == '__main__':
debug(True)
run(host='localhost', port=8080)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
bottle-web2pydal-0.0.1.tar.gz
(124.4 kB
view details)
File details
Details for the file bottle-web2pydal-0.0.1.tar.gz
.
File metadata
- Download URL: bottle-web2pydal-0.0.1.tar.gz
- Upload date:
- Size: 124.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fd86bf3e805b993c840a5c9e807b993fe7d21af7c56af534574dfbfb1dc31ef2 |
|
MD5 | 9fea53e706814926a8bca223416d79ad |
|
BLAKE2b-256 | 1df5112cb583a3d452fabbdb5a13a854143326f1a7d6e01ff9fda6bf6e819d9a |