Extended SQLAlchemy declarative_base class
Project description
sqla_declarative
================
This package provides an extended Base class for your SQLAlchemy classes.
What this class proposes:
* the __tablename__ to create/use for the class is automatically defined by class.__name__.lower().
* it adds a property pk_id which returns the value of the primary key for the object.
* it attaches a query object to the class which is a shortcut to session.query(class).
* Function which returns all the DB entry in a HTML table
* Function to edit/add new entry as a HTML form
Example of usage::
import sqlalchemy as sa
from sqlalchemy.orm import (
scoped_session,
sessionmaker,
)
from zope.sqlalchemy import ZopeTransactionExtension
from sqla_declarative import extended_declarative_base
session = scoped_session(sessionmaker(extension=ZopeTransactionExtension()))
Base = extended_declarative_base(
session,
metadata=sa.MetaData('sqlite:///:memory:'))
class Test1(Base):
id = sa.Column(sa.Integer, primary_key=True)
name = sa.Column(sa.String(50))
bob = Test1(name='Bob')
session.add(bob)
# pk_id detects automatically the primary key and returns it value
bob.pk_id == 1
# Easy querying. For example:
Test1.query.one() == bob
# To see all the existing entry as HTML
Test1.view_all()
# To add/update a new entry as HTML
widget = Test1.edit_form()
widget.display()
================
This package provides an extended Base class for your SQLAlchemy classes.
What this class proposes:
* the __tablename__ to create/use for the class is automatically defined by class.__name__.lower().
* it adds a property pk_id which returns the value of the primary key for the object.
* it attaches a query object to the class which is a shortcut to session.query(class).
* Function which returns all the DB entry in a HTML table
* Function to edit/add new entry as a HTML form
Example of usage::
import sqlalchemy as sa
from sqlalchemy.orm import (
scoped_session,
sessionmaker,
)
from zope.sqlalchemy import ZopeTransactionExtension
from sqla_declarative import extended_declarative_base
session = scoped_session(sessionmaker(extension=ZopeTransactionExtension()))
Base = extended_declarative_base(
session,
metadata=sa.MetaData('sqlite:///:memory:'))
class Test1(Base):
id = sa.Column(sa.Integer, primary_key=True)
name = sa.Column(sa.String(50))
bob = Test1(name='Bob')
session.add(bob)
# pk_id detects automatically the primary key and returns it value
bob.pk_id == 1
# Easy querying. For example:
Test1.query.one() == bob
# To see all the existing entry as HTML
Test1.view_all()
# To add/update a new entry as HTML
widget = Test1.edit_form()
widget.display()
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
sqla_declarative-0.2.tar.gz
(3.8 kB
view details)
File details
Details for the file sqla_declarative-0.2.tar.gz
.
File metadata
- Download URL: sqla_declarative-0.2.tar.gz
- Upload date:
- Size: 3.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b72cd2c1f1a45cc86ddcc2913fbe926f06f024a2ccb85ae002e206a34c0df3f9 |
|
MD5 | fff9e27504906467aa8106b5ec12ccdd |
|
BLAKE2b-256 | e6e5afc336f087443e21dea5e8209766a3acac21581002a129e22a237d1ed245 |