访问tryton模块的rest api

tryton-restful的Python项目详细描述


tryton模型的rest api

安装

从python包索引安装:

pip install tryton-restful

用法

在安装时,您应该能够使用 运行本地开发服务器。

tryton_restful --help

 Usage: tryton_restful [OPTIONS] HOST PORT

   Runs the application on a local development server.

 Options:
   -c, --config TEXT            Path to tryton configuration file
   --debug
   --threaded / --not-threaded  should the process handle each request in a
                                separate thread?
   --help                       Show this message and exit.

您可以通过以下方式运行服务器:

tryton_restful -c /path/to/tryton/config

提示

还可以使用环境变量指定配置文件。

导出tryton-config=/path/to/tryton/config

rest api端点:

/<;dbname>;/登录

POSTExpects login and password as form data and returns a JSON of user ID and session to be used for subsequent requests
importrequestsimportjsonDATABASE_NAME='rest'BASE_PATH='http://localhost:9000/'+DATABASE_NAMElogin_result=requests.post(BASE_PATH+'/login',data={'login':'admin','password':'admin'})tryton_session=login_result.json()printtryton_session
{u'session': u'966689963c0a4a939cb326c1451b0fe9', u'id': 1}

/<;dbname>;/model/<;model.name>;

GET

Return a list of records (Just the ID and rec_name)

Params:

  • domain: JSON serialised domain expression example: [[‘name’, ‘ilike’, ‘openlabs’]]
  • page: Integer number of the page
  • per_page: The number of records to be returned per page
  • order: JSON serialised order expression in which the records should be sorted. Ex: [(‘name’, ‘ASC’), (‘date’, ‘DESC’)]
s=requests.Session()s.auth=(tryton_session['id'],tryton_session['session'])# Use the session and get the list of usersprints.get(BASE_PATH+'/model/res.user').json()
{u'items': [{u'rec_name': u'Administrator', u'id': 1}]}
POSTCreates one or more records in the given model
# Create a new userheaders={'content-type':'application/json'}values=[{'name':'Thomas','login':'thomas','password':'password'},{'name':'Alfred','login':'alfred','password':'somethingelse'},]users=s.post(BASE_PATH+'/model/res.user',data=json.dumps(values),headers=headers).json()printusers
{u'items': [{u'rec_name': u'Thomas', u'id': 3}, {u'rec_name': u'Alfred', u'id': 4}]}
DELETEDelete all records in the given model

/<;dbname>;/model/<;model.name>;/<;id>;

GET

Return the details of the given record

Params:

  • fields_names: specify the list of fields to be returned. Default behavior is to return as much data as possible
# Get full details of the first userprints.get(BASE_PATH+'/model/res.user/1').json()
{u'create_date': u'Sat, 10 May 2014 08:51:16 GMT', ....}
# Get only a limited set of fieldsuser_url=BASE_PATH+'/model/res.user/1'prints.get(user_url+'?fields_names=name&fields_names=email').json()
{u'email': None, u'name': u'Administrator', u'id': 1}
PUTUpdate the given resource
# Change the email of the userheaders={'content-type':'application/json'}user_data=s.put(user_url,data=json.dumps({'email':'admin@example.com'}),headers=headers).json()printuser_data['email']
admin@example.com
DELETEDelete the given record
# get a new list of all usersprints.get(BASE_PATH+'/model/res.user').json()
{u'items': [{u'rec_name': u'Administrator', u'id': 1}, {u'rec_name': u'Thomas', u'id': 3}, {u'rec_name': u'Alfred', u'id': 4}]}
# delete user Alfred with ID 4prints.delete(BASE_PATH+'/model/res.user/4')
<Response [205]>
# get a new list of all usersprints.get(BASE_PATH+'/model/res.user').json()
{u'items': [{u'rec_name': u'Administrator', u'id': 1}, {u'rec_name': u'Thomas', u'id': 3}]}

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

推荐PyPI第三方库


热门话题
java如何将JButton合并到图形中?   java在每个循环中使用基类类型或派生类类型   JavaSwingGUI应用程序完全是空白的,没有任何内容,而按钮被添加到面板中   java Android获取getDefaultSensor括号时出错   java Spring引导和安全性与AngularJS登录页面   java注销appengine应用程序而不从google注销。通用域名格式   java仅在发生错误或异常时创建日志文件,而不使用log4j   java get json数组和Retrift 2   swing中的java响应映像   为什么java的inputstream。close()块?   java驱动管理器。getConnection()非常冗长   java如何使用joml将标准化向量旋转到一个点   ubuntu将Java程序的输出结果保存到一个文件中   java动态可拖动、可编辑和自动调整大小的文本字段