我是学基维的。我有Django应用程序的CRUD函数(图书库)和API (Tastypie)。
如何用我所有书的列表来构建应用程序呢?要列出哪些组件,以及如何从API中检索数据并显示它们?
Mysite.com/api/book/?format=json
杰森:
{"meta": {"limit": 20, "next": null, "offset": 0, "previous": null, "total_count": 8}, "objects": [{"title": "Kivy book", "description": "Cool book", "id": 1, "page_count": 155}]}有人能为这个简单的例子提供代码吗?
发布于 2013-09-23 01:26:40
这里是一个例子,从我的理解,你正在努力实现。它基于最简单的ListView实例。请注意,我从您提供的示例中创建了一个扩展的JSON版本。另外,当您想要使用url时,您必须替换两个注释行。加载json的方法是load (用于io输入),而不是loads (用于字符串输入)。
from kivy.uix.listview import ListView
from kivy.uix.gridlayout import GridLayout
import json
import urllib2
class MainView(GridLayout):
def __init__(self, **kwargs):
kwargs['cols'] = 2
super(MainView, self).__init__(**kwargs)
the_string_json = '{"meta": {"previous": null, "total_count": 8, "offset": 0, "limit": 20, "next": null}, "objects": [{"id": 1, "page_count": 155, "description": "Cool book", "title": "Kivy book 1"}, {"id": 1, "page_count": 155, "description": "Cool book", "title": "Kivy book 2"}, {"id": 1, "page_count": 155, "description": "Cool book", "title": "Kivy book 3"}]}'
the_dict = json.loads(the_string_json)
# Substitute the previous two lines for this ones:
# the_io_json = urllib2.urlopen('mysite.com/api/books/?format=json')
# the_dict = json.load(the_io_json)
list_view = ListView(
item_strings=[book['title'] for book in the_dict['objects']])
self.add_widget(list_view)
if __name__ == '__main__':
from kivy.base import runTouchApp
runTouchApp(MainView(width=800))https://stackoverflow.com/questions/18946062
复制相似问题