小精灵
dodotable的Python项目详细描述
SQLAlchemy的HTML表表示。
sqlalchemy到<table>
假设您有一个名为music的实体。它看起来像下面。
classMusic(Base):id=Column(Integer,primary_key=True)name=Column(Unicode,nullable=False)
下面的代码呈现一个可排序的表,该表由一个音乐列表组成。
fromdodotable.schemaimportTable,Columntable=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]\ 继承dodotable.schema.Renderable将实例转换为HTML 直接在Jinja2中。用Flask重新编写之前编写的示例。
fromdodotable.schemaimportTable,ColumnfromflaskimportFlask,render_template,requestapp=Flask(__name__)@app.route('/musics/',methods=['GET'])deflist_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)returnrender_template('list_musics.html',table=table.select(limit=request.args.get('limit'),offset=request.args.get('offset')))
而作为jinja2模板的list_musics.html如下所示。
<html> <body> {{ table }} </body> </html>
[1] | http://jinja.pocoo.org/docs/dev/api/#jinja2.Markup |