龙卷风休息API

tornado-alchemy-rest的Python项目详细描述


这个简单的模块为sqlalchemy表创建crud端点。它的 目的是允许快速创建restfulapi,例如 面板。列表终结点支持分页和筛选。是为 Angular的ng admin,所以这个模块支持从 框

安装

pip install tornado-alchemy-rest

用法示例

importtornado.webfromtornado.webimportURLSpecfrom.modelsimportItemTablefromtornado_alchemy_restimportSingleRESTAPIHandler,ListRESTAPIHandlerclassSingleItemHandler(SingleRESTAPIHandler):table=ItemTabledefdelete(self,*args,**kwargs):raiseHTTPError(405)classItemHandler(ListRESTAPIHandler):table=ItemTableapp=tornado.web.Application([URLSpec(prefix(r'items'),ItemHandler,dict(psql=psql_pool),'items'),URLSpec(prefix(r'items/(\d+)'),SingleItemHandler,dict(psql=psql_pool),'single_item'),])

更复杂的示例,您可以重写对象创建方法:

classSingleItemHandler(SingleRESTAPIHandler):table=TableItem@gen.coroutinedefget_object_dict(self,*args):obj=yieldsuper().get_object_dict(*args)cursor=yieldself._execute_query(User.select().where(User.c.id==obj['user_id']))obj['user']=cursor.fetchone()returnobj@gen.coroutinedefput_object_dict(self,id,params):assertparams['value']>5yieldsuper().put_object_dict(id,params)classItemHandler(ListRESTAPIHandler):table=TableItem@gen.coroutinedefget_object_list(self,query):objects=yieldsuper().get_object_list(query)forobjinobjects:cursor=yieldself._execute_query(User.select().where(User.c.id==obj['user_id']))obj['user']=cursor.fetchone()raisegen.Return(objects)@gen.coroutinedefpost_object_dict(self,params):assertparams['value']>5yieldsuper().post_object_dict(params)

查询

要获得按id desc排序的第二页,您需要执行以下查询:

GET /item?_page=2&_perPage=30&_sortField=id&_sortDir=DESC

要获取所有项,其中name包含“test”和type是5并且 value是7或6,您将需要该查询:

GET /item?_filters={"name__contains":"test", "type":5, "value__any":[7,6]}

查询参数

  • 页面–页面名称
  • 每页–每页行数
  • sortfield–要订购的字段
  • sortdir–排序方向
  • filters–使用给定参数筛选项。当前支持 筛选器为:“(相等)、startswith、contains、icontains、any、ne

加入支持

将在某个时间从两个表返回数据:

classSingleItemHandler(SingleRESTAPIHandler):table=TableItemdefget_from(self):returnself.table.join(TableUser,isouter=True)

要求

龙卷风,炼金术

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

推荐PyPI第三方库


热门话题
java gradle无法解析配置的任何依赖项:类路径   来自远程服务的java错误字符串解析   java如何在Tomcat之外运行TomcatSpring/Struts 2Quartz任务?   将Java字节转换为Perl   Java选项:返回值或执行某些操作并继续循环   java如何从对象中获取变量?   postgresql自动部署web服务java和glassfish服务器4.1.1?   使用泛型的java Resteasy重写方法   在另一个用户登录后显示上一个用户的java数据   JSP(Java):编码字节数组并在JavaScript中使用,与C中相同#   Java:如何知道jar在Linux中的位置   java模拟已标记为可访问的私有方法的返回值   java无法理解滚动窗格   java Spring Boot Starter Web依赖项提供缺少工件的错误   java从SQL表创建json文件,然后能够查询该文件   java线程时钟对象   Java实践编程问题   多线程Java GUI未更改   GL30库中不存在intellij idea GLGEnVertexArray()。(JAVA LWJGL)   二进制文件在java中编辑二进制文件