0

私はKivyを学びます。CRUD機能(Books Library)とこのためのAPI(Tastypie)を備えたDjangoアプリがあります。

私のすべての本のリストでアプリケーションを構築する「アルゴリズム」をどのように見ることができますか? リストに使用するコンポーネントと、API からデータを取得して表示する方法は?

mysite.com/api/books/?format=json

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}]}

誰でもこの簡単な例のコードを提供できますか?

4

1 に答える 1

1

これは、あなたが達成しようとしている私の理解の例です。これは、最も単純なListView の例に基づいています。提供された例から拡張された JSON バージョンを作成したことに注意してください。また、URL を使用する場合は、2 つのコメント行を置き換える必要があります。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))
于 2013-09-23T01:26:40.880 に答える