使用Slumb通过restapi创建和更新Pootle项目

2024-06-07 05:27:40 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有人有一个如何通过Pootle的基于Tastypie的restapi创建和更新Pootle项目及其模板字符串的工作示例?我真的很想看到一个最小的,优雅的方法来实现这个,例如,Slumber。在

我的案例:我想从我的Web应用程序创建几个Pootle项目。您可以将每个这样的项目视为对应于Web服务中文章集合中的一篇文章。对于每一个项目,我都需要能够

  1. 首先使用提取的(模板)字符串列表(通过API)创建它
  2. 提供实际的翻译(人工翻译,通过Pootle的网络界面[不是一个问题])
  3. 检索翻译,最好是通过API作为PO文件,并且
  4. 更新可翻译字符串集(通过API),以便人类可以执行更多的翻译。在

我读过Pootle的GlossaryAPI definitionits API usage notesTastypie documentation,和{a8},但我觉得我遗漏了一部分。例如,tastype提供了很好的选项来指定请求URL中的过滤参数,但是我感觉必须检索整个项目列表才能在应用程序中搜索正确的项目,这让我想知道其他人是如何使用API的。在

以下代码正确地创建了一个新项目:

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

import slumber

api = slumber.API('http://localhost:8000/api/v1/', auth=('admin', 'admin'))

project_data = {
    'code': 'test01',
    'fullname': 'Test #01',
    'description': 'Another test.',
    'source_language': '/api/v1/languages/2/',
    'translation_projects': [],
}

new_project = api.projects.post(project_data)

并且new_project表示以下dict:

^{pr2}$

假设我保留了code值以便以后使用。检索项目的id(即10,从resource_uri中检索)的最有效方法是什么?我想要的原因是为了以后的请求,比如:

api.projects(10).get()

Tags: 项目方法字符串project模板apiweb应用程序