0

KendoUI グリッドと Flask-Restless Web サービスを使用して、サーバー側のフィルタリングを実装しようとしています。

私の Datasource オブジェクトは次のようになります。

        var myDataSource = new kendo.data.DataSource({
        transport: {
            read: {
              type: 'GET',
              url: "http://localhost:5000/api/geo",
              contentType: "application/json",
              dataType: "json",
            },
            parameterMap: function(data, type) {
              if (type == "read") {
                // console.log(data.filter);
                return {
                  page: data.page,
                  q: data.filter
                }
              }
            },
        },
        schema: {
          data: 'objects',
          total: "num_results", 
        },
        serverPaging: true,
        serverFiltering: true,
        pageSize: 100,
    }); 

サーバー側では、フィルター パラメーターをインターセプトし、Flask-Restless クエリ オブジェクト形式に合わせて適切に変更し、REST エンドポイントに渡したいと考えています。ただし、GET リクエストを使用する場合、flask.request.args オブジェクトはフラット化された辞書のように見え、解析が面倒です。プリプロセッサ内の次のコード:

 for key, value in flask.request.args.iteritems():
    print '%s : %s' % (key, value)

生成:

q[filters][0][value] : 106
q[filters][1][field] : county_id
q[filters][1][operator] : eq
q[filters][1][value] : 107
q[filters][0][operator] : eq
q[filters][0][field] : county_id
q[logic] : and

2 つの質問があると思います: 1. Flask-Restless エンドポイントからデータを読み取るために POST 要求を使用することは可能ですか? 2. #1 の答えが「はい」の場合: data.filter オブジェクトを Kendo DataSource から Flask-Restless Web サービスに渡す方法は?

プリプロセッサ内のflask.reguest.args(GETリクエストの場合)にアクセスできますが、args構造はネストされたオブジェクトを「q [filters] [0] [value]」のような文字列キーとして表します。解析します。より良いアプローチがあることを願っています。

ありがとう!

4

1 に答える 1