как получить доступ к многомерным массивам GET query string в bottle python

#python #get #query-string #bottle

#python #получить #запрос-строка #бутылка

Вопрос:

Я знаю, как получить отдельные значения из таких ключей, как:

 some_val = request.query.some_key
  

Но как вы получаете доступ к значениям, когда у вас есть такой URL-адрес.

Пример URL: http://blahblah.com/what?draw=1amp;columns[0][data]=source_urlamp;columns[0][name]=amp;columns[0][searchable]=trueamp;columns[0][orderable]=trueamp;columns[0][search][value]=amp;columns[0][search][regex]=falseamp;columns[1][data]=total_sizeamp;columns[1][name]=amp;columns[1][searchable]=trueamp;columns[1][orderable]=trueamp;columns[1][search][value]=amp;columns[1][search][regex]=falseamp;columns[2][data]=total_timeamp;columns[2][name]=amp;columns[2][searchable]=trueamp;columns[2][orderable]=trueamp;columns[2][search][value]=amp;columns[2][search][regex]=falseamp;columns[3][data]=tag_nameamp;columns[3][name]=amp;columns[3][searchable]=trueamp;columns[3][orderable]=trueamp;columns[3][search][value]=amp;columns[3][search][regex]=falseamp;order[0][column]=0amp;order[0][dir]=ascamp;start=0amp;length=10amp;search[value]=amp;search[regex]=falseamp;_=1476782117541

Как выглядят декодированные параметры:

 _   
1476782117541
columns[0][data]    
source_url
columns[0][name]    
columns[0][orderable]   
true
columns[0][search][regex]   
false
columns[0][search][value]   
columns[0][searchable]  
true
columns[1][data]    
total_size
columns[1][name]    
columns[1][orderable]   
true
columns[1][search][regex]   
false
columns[1][search][value]   
columns[1][searchable]  
true
columns[2][data]    
total_time
columns[2][name]    
columns[2][orderable]   
true
columns[2][search][regex]   
false
columns[2][search][value]   
columns[2][searchable]  
true
columns[3][data]    
tag_name
columns[3][name]    
columns[3][orderable]   
true
columns[3][search][regex]   
false
columns[3][search][value]   
columns[3][searchable]  
true
draw    
1
length  
10
order[0][column]    
0
order[0][dir]   
asc
search[regex]   
false
search[value]   
start   
0
  

Я пытался

 request.query.getall('order')
  

или

 request.query.decode()
  

Я пытаюсь проанализировать параметры, которые автоматически отправляются таблицами данных, чтобы я мог соответствующим образом изменить свой запрос.

Ответ №1:

Поскольку этот вопрос относится к использованию https://datatables.net / с помощью серверной части bottle python. В итоге я отформатировал аргументы на стороне клиента следующим образом. Возможно, вы найдете это полезным.

 $('#performance-table').DataTable( {
                "ajax": {
                    "url" : "http://someapi.com/dt_set",
                    "type": 'GET',
                    "beforeSend": function (request) {
                        request.setRequestHeader("Authorization", "Bearer "   token);
                    },
                    data: function ( args ) {
                        margs = {}
                        margs.page_nr = args.draw;
                        margs.how_many = args.length;
                        margs.sort_column = args.columns[args.order[0].column].data;
                        margs.sort_direction = args.order[0].dir;
                        //return args;
                        return margs;
                    }
                },
                "processing": true,
                "serverSide": true,
                "columns": [
                    { "data": "source_url" },
                    { "data": "total_size" },
                    { "data": "total_time" },
                    { "data": "tag_name"   }
                ]
             });