向flask添加jsonrpc支持。

Flask-JSONRPC的Python项目详细描述


基于django-json-rpc的烧瓶驱动站点的基本JSON-RPC实现。

您可能要使用的一些原因:

    简单、强大、灵活和Python API。
  • 支持python 2.7,3.3 or later
  • Web可浏览的API。
  • 支持身份验证。
  • 用于测试json服务的代理。
  • 运行时类型检查。
  • 广泛的文档和强大的社区支持。

要支持Python2.6.5+或更早版本,请使用分支py2k

有一个用于测试目的的实时示例api,available here

下面:可浏览api的屏幕截图

https://f.cloud.github.com/assets/298350/1575590/203c595a-5150-11e3-99a0-4a6fd9bcbe52.png

将flask json-rpc添加到应用程序中

  1. 安装
$ pip install Flask-JSONRPC

$ git clone git://github.com/cenobites/flask-jsonrpc.git
$ cd flask-jsonrpc
$ python setup.py install
  1. 入门

创建应用程序并初始化flask jsonrpc。

from flask import Flask
from flask_jsonrpc import JSONRPC

app = Flask(__name__)
jsonrpc = JSONRPC(app, '/api')

编写json-rpc方法。

@jsonrpc.method('App.index')
def index():
    return u'Welcome to Flask JSON-RPC'

示例run.py的所有代码。

  1. 运行
$ python run.py
 * Running on http://0.0.0.0:5000/
  1. 测试
$ curl -i -X POST \
   -H "Content-Type: application/json; indent=4" \
   -d '{
    "jsonrpc": "2.0",
    "method": "App.index",
    "params": {},
    "id": "1"
}' http://localhost:5000/api
HTTP/1.0 200 OK
Content-Type: application/json
Content-Length: 77
Server: Werkzeug/0.8.3 Python/2.7.3
Date: Fri, 14 Dec 2012 19:26:56 GMT

{
  "jsonrpc": "2.0",
  "id": "1",
  "result": "Welcome to Flask JSON-RPC"
}

测试您的服务

您可以使用http://localhost:5000/api/browse(如果使用上面的url模式)提供的web可浏览api或附带的serviceproxy来测试您的服务:

>>> from flask_jsonrpc.proxy import ServiceProxy
>>> server = ServiceProxy('http://localhost:5000/api')
>>>
>>> server.App.index()
{'jsonrpc': '2.0', 'id': '91bce374-462f-11e2-af55-f0bf97588c3b', 'result': 'Welcome to Flask JSON-RPC'}

我们将jsonrpc_version变量添加到请求对象。它可以是“1.0”、“1.1”或“2.0”。阿格。

有关更多测试,请参见Examples

依赖关系

项目信息

Author:Cenobit Technologies, Inc.
Version:v0.3 of 2015/08/10
License:New BSD License

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

推荐PyPI第三方库


热门话题
使用jaxb2annotateplugin和XJC工具的java自定义注释   java组织。xeustechnologies。jcl无法加载WstxInputFactory类   java JUnit在格式化字符串上比较失败   java Bukkit配置部分getKeys   如何关闭Java流?   java Struts2正则表达式配置   链式事务注释的java奇怪行为   java在两个JButton之间使用变量   java签署APK时内容会发生什么变化?   java LWJGL:Slick:3D世界中的绘图字体   如何分解Java数组?   在Java MySql中处理多个过滤器   java如何在Firebase数据库中跳过初始OnChildaded事件触发   java如何在PreviewView中使用CameraX?   在子类#中重写父类后访问父类原始方法的java已解决   java找不到类型的属性   游戏框架游戏!框架+Java