跳转到主要内容

dodotable

项目描述

Latest PyPI version Documentation Status https://travis-ci.org/spoqa/dodotable.svg?branch=master

HTML表格表示SQLAlchemy

SQLAlchemy to <table>

假设你有一个名为Music的实体。它看起来像下面这样。

class Music(Base):

    id = Column(Integer, primary_key=True)

    name = Column(Unicode, nullable=False)

以下代码渲染了一个可排序的<table>,由音乐列表组成。

from dodotable.schema import Table, Column

table = Table(
    cls=Music,
    label='music table',
    columns=[
        Column(attr='id', label=u'id', order_by='id.desc'),
        Column(attr='name', label=u'name'),
    ],
    sqlalchemy_session=session
)
print(table.select(offset=0, limit=10).__html__())

使用Flask

Flask使用Jinja2作为模板引擎。正如他们在文档[1]_中提到的,这是实现__html__在继承dodotable.schema.Renderable的每个类上的策略之一,以直接在Jinja2中将实例转换为HTML。用Flask重写前面的示例。

from dodotable.schema import Table, Column
from flask import Flask, render_template, request

app = Flask(__name__)


@app.route('/musics/', methods=['GET'])
def list_musics():
    table = Table(
        cls=Music,
        label='music table',
        columns=[
            Column(attr='id', label=u'id',
                   order_by=request.args.get('order_by')),
            Column(attr='name', label=u'name'),
        ],
        sqlalchemy_session=session
    )
    return render_template(
        'list_musics.html',
        table=table.select(limit=request.args.get('limit'),
                           offset=request.args.get('offset'))
    )

并且 list_musics.html 是一个 jinja2 模板,其结构如下。

<html>
  <body>
    {{ table }}
  </body>
</html>

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

dodotable-0.6.1.tar.gz (14.9 kB 查看散列值)

上传时间

支持者