skip to navigation
skip to content

datatables 0.3

Integrates SQLAlchemy with datatables

Latest Version: 0.4.9


The package is available on PyPI

pip install datatables


Using Datatables is simple. Construct a DataTable instance by passing it your request parameters (or another dict-like object), your model class, a base query and a set of columns. The columns list can contain simple strings which are column names, or tuples containing (datatable_name, model_name), (datatable_name, model_name, filter_function) or (datatable_name, filter_function).

Additional data such as hyperlinks can be added via DataTable.add_data, which accepts a callable that is called for each instance. Check out the usage example below for more info.


class User(Base):
    __tablename__ = 'users'

    id          = Column(Integer, primary_key=True)
    full_name   = Column(Text)
    created_at  = Column(DateTime, default=datetime.datetime.utcnow)

    address     = relationship("Address", uselist=False, backref="user")

class Address(Base):
    __tablename__ = 'addresses'

    id          = Column(Integer, primary_key=True)
    description = Column(Text, unique=True)
    user_id     = Column(Integer, ForeignKey(''))

@view_config(route_name="data", request_method="GET", renderer="json")
def users_data(request):
    # User.query = session.query(User)
    table = DataTable(request.params, User, User.query, [
        ("name", "full_name", lambda i: "User: {}".format(i.full_name)),
        ("address", "address.description"),
    table.add_data(link=lambda o: request.route_url("view_user",

    return table.json()


<table class="table" id="simple-example">
            <th>User name</th>
            <th>Address description</th>

        serverSide: true,
        processing: true,
        ajax: "{{ request.route_url("data") }}",
        columns: [
                data: "id",
                "render": function(data, type, row){
                    return $("<div>").append($("<a/>").attr("href",;
            { data: "name" },
            { data: "address" }
File Type Py Version Uploaded on Size (md5) Source 2014-08-11 8KB
  • Downloads (All Versions):
  • 7 downloads in the last day
  • 225 downloads in the last week
  • 1023 downloads in the last month