将sqlalchemy与datatables集成(与框架无关)-包含ninchanese.com的修复程序

ninchanese-datatables的Python项目详细描述


安装

该包在PyPI上提供,并在python 2.7到3.4上进行测试

pip install datatables

用法

使用数据表很简单。通过传递请求参数(或其他类似dict的参数)来构造datatable实例 对象),模型类、基本查询和一组列。列列表可以包含以下简单字符串 列名或元组包含(datatable_name,model_name),(datatable_name,model_name,filter_function)或 (datatable_name,filter_函数)。

可以通过datatable.add_data添加其他数据,例如超链接,它接受调用 每个实例。查看下面的使用示例以获取更多信息。

示例

models.py

classUser(Base):__tablename__='users'id=Column(Integer,primary_key=True)full_name=Column(Text)created_at=Column(DateTime,default=datetime.datetime.utcnow)# Use lazy=joined to prevent O(N) queriesaddress=relationship("Address",uselist=False,backref="user",lazy="joined")classAddress(Base):__tablename__='addresses'id=Column(Integer,primary_key=True)description=Column(Text,unique=True)user_id=Column(Integer,ForeignKey('users.id'))

views.py

@view_config(route_name="data",request_method="GET",renderer="json")defusers_data(request):# User.query = session.query(User)table=DataTable(request.GET,User,User.query,["id",("name","full_name",lambdai:"User: {}".format(i.full_name)),("address","address.description"),])table.add_data(link=lambdao:request.route_url("view_user",id=o.id))table.searchable(lambdaqueryset,user_input:perform_some_search(queryset,user_input))returntable.json()

template.jinja2

<tableclass="table"id="clients_list"><thead><tr><th>Id</th><th>User name</th><th>Address</th></tr></thead><tbody></tbody></table><script>$("#clients_list").dataTable({serverSide:true,processing:true,ajax:"{{ request.route_url("data") }}",columns:[{data:"id","render":function(data,type,row){return$("<div>").append($("<a/>").attr("href",row.DT_RowData.link).text(data)).html();}},{data:"name"},{data:"address"}]</script>

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在运行时设置响应类型(Spring MVC)   java Selenium与BrowserMobProxy   java如何处理控制器(Swing)中的组件?   linux将metajava层添加到Yocto会导致解析失败   java存储X和Y坐标   java AssertJ检查JSONArray是否包含带有给定键和值的项的映射   java Redis客户端是否连接到多个aws读取副本端点?   java如何关闭对话框窗口上的按钮点击   java SHA256是否具有良好的跨平台支持?   java为什么这个if语句没有失败?   java无法在Spring中加载servlet上下文   java如何使用ApacheHWPF将图像插入文档文件   java SetWindowDisplayAffinity失败,错误为“拒绝访问”   当键盘出现时,java 安卓调整布局   C++中缓冲区的java替换