contentful内容交付api的python sdk

contentful.p的Python项目详细描述


travis

用于Contentful内容交付api的python sdk。

设置

通过pip

安装
pip install contentful.py

用法

创建客户机

Client类管理您与contentful delivery api的所有交互,创建一个api非常简单:

client=Client('space-id','access-token')

获取资源

获取资源的最简单形式如下:

client.fetch(Asset).all()# Returns an array of Assetsclient.fetch(Asset).first()# Returns the first Asset availableclient.fetch(Entry).all()# Returns an array of Entriesclient.fetch(Entry).first()# Returns the first Entry availableclient.fetch(ContentType).all()# Returns an array of Content Typesclient.fetch(ContentType).first()# Returns the first Content Type available

当与all()方法一起使用时,需要返回一个Array对象,它是iterable:

forresourceinarray:dosomething(resource)

可切片:

forresourceinarray[2:4]:dosomething(resource)

自定义查询

可以通过调用Request对象的where()方法来提供自定义查询,例如:

client.fetch(Entry).where({'sys.id':'MyEntry'}).first()

定义模型

可以通过提供内容类型id值和定义一组字段来声明自定义条目类。考虑一下来自官方演示空间的Catcontent类型,如下所示(为了简洁起见,没有一些属性):

{"fields":[{"id":"name","name":"Name","type":"Text"},{"id":"likes","name":"Likes","type":"Array","items":{"type":"Symbol"}},{"id":"color","name":"Color","type":"Symbol"},{"id":"bestFriend","name":"Best Friend","type":"Link","linkType":"Entry"},{"id":"birthday","name":"Birthday","type":"Date"},{"id":"lives","name":"Lives left","type":"Integer"},{"id":"image","name":"Image","type":"Link","linkType":"Asset"}],"name":"Cat","displayField":"name","description":"Meow."}

此内容类型的自定义条目类可以定义如下:

classCat(Entry):__content_type__='cat'name=Field(Text)likes=Field(List)color=Field(Text)best_friend=Field(Link,field_id='bestFriend')birthday=Field(Date)lives=Field(Number)image=Field(Link)

在创建Client

client=Client('cfexampleapi','b4c0n73n7fu1',custom_entries=[Cat])

每当这个Client试图创建一个内容类型与类中定义的内容类型匹配的Entry时,就会创建一个Cat类的实例,并相应地设置其字段,以后可以作为实例属性轻松访问:

print('Name of the Cat: {0}'.format(cat.name))

如果在任何时候只需要获取该类型的资源,则可以将其传递给fetch()方法,并由客户端进行推断:

client.fetch(Cat).all()# Fetches all the Cats!

许可证

版权所有(c)2015 Contentful GmbH。有关详细信息,请参见LICENSE.txt

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

推荐PyPI第三方库


热门话题
trycatch块中的java,是否“最终”覆盖异常块中的“返回”?   java在无限循环运行时,不明白为什么   导入javax时发生java错误。jnlp库   java Android:通过编程方式从微调器创建ArrayList   java Apache camel在处理所有文件后创建空ctl文件   运行外部文件Java   批处理文件Java关于运行时的混淆。memory()与Windows的物理内存使用历史记录图   java Play Framework 2/冗余对象验证   java如何纠正“注入目标不能声明为静态的”警告   java使用“this::content”或“::content”不按预期工作,包含来自同一thymeleaf模板的片段   无法使用Java和Apache POI写入Excel文件   java仅使用Twitter4j搜索带有图片/媒体的推文   java Hibernate惰性加载在@OneToOne映射中不起作用   java从外部存储器读取数据库文件   java从引用bean的映射中获取键值   java Springboot应用在实现MongoRepository时无法运行   java从2d数组返回多个匹配项   java文件>字节[]>字符串>字节[]>文件转换   JavaFX按钮释放事件