将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读取计算错误的数学pow   java jOOQ转换器在写入记录时隐式设置值   java获取时间轴后的int值   java如何获得高质量的缩略图   jvm集Java调用堆栈   Android中的java libGDX AdMob?   java随机Tic Tac Toe检查器问题   java如何在静态类中获取属性   java在KIE执行服务器中使用drools globals与外部服务交互   java将任何颜色代码转换为Android中最接近的人类颜色   在spring项目中使用AOP注释@flip时,java FF4J不会翻转   java如何在安卓中包装动态创建的文本视图?   java在ColdFusion中切换到不同的XSLT处理器   java检测特定的用户输入,而不首先在while循环中处理它   排序Java:将矩阵转化为列表:我的add方法不起作用,我不知道为什么   Android上使用JAIN SIP API的java PeerRunAvailableException   java是否读取了数组中的下一个文件?   java如何使用JDO在AppEngine中的ManyTone中按父对象筛选实体