2017-05-11 4 views
0

私は私のウェブサイトをpython(webapp2)とGoogleのデータストアをバックエンドで開発しています。 ページングのクエリカーソルを追加しましたが、それはうまくいきましたが、ページングの次と前の機能しかありません。質問はページ1に移動してページ3にジャンプする方法私はそれをクエリカーソルで管理しますか?クエリカーソルを使用して特定のページにジャンプする方法は?

私はまた、リンクの下に訪れましたが、あなたがすることはできません任意のソリューション https://www.the-swamp.info/blog/pagination-google-app-engine/

https://cloud.google.com/appengine/docs/standard/python/datastore/query-cursors

答えて

2

を見つけることができませんでした。 Datastoreは、クエリによって検出された結果の数を認識しません。

しかしながら、完全なページ付けをシミュレートするためにいくつかのトリックを使用することはできます。 例えば、ループ内にある数のカーソルを生成し、「最後のページ」を生成する方法があります。次の擬似コードで

のように:あなたは結果がパフォーマンスが多少許容されるカーソルアクセスしていないので

(results, next_curs, more) = model.query....fetch_page(...) 

for p in xrange(5): 
    # generate cursor for page number 'b' 
    # by using the next_cursor from previous page 
    (results, next_curs, more) = model.....fetch_page(cursor=next_cursor,...) 

(お使いのモデルの複雑さに応じて、クエリの複雑さなど)。 あなたのデータでそれを微調整することができます。

関連する問題