2016-10-18 12 views
0

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

some_val = request.query.some_key 

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

Пример URL: http://blahblah.com/what?draw=1&columns%5B0%5D%5Bdata%5D=source_url&columns%5B0%5D%5Bname%5D=&columns%5B0%5D%5Bsearchable%5D=true&columns%5B0%5D%5Borderable%5D=true&columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B1%5D%5Bdata%5D=total_size&columns%5B1%5D%5Bname%5D=&columns%5B1%5D%5Bsearchable%5D=true&columns%5B1%5D%5Borderable%5D=true&columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B2%5D%5Bdata%5D=total_time&columns%5B2%5D%5Bname%5D=&columns%5B2%5D%5Bsearchable%5D=true&columns%5B2%5D%5Borderable%5D=true&columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B3%5D%5Bdata%5D=tag_name&columns%5B3%5D%5Bname%5D=&columns%5B3%5D%5Bsearchable%5D=true&columns%5B3%5D%5Borderable%5D=true&columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&order%5B0%5D%5Bcolumn%5D=0&order%5B0%5D%5Bdir%5D=asc&start=0&length=10&search%5Bvalue%5D=&search%5Bregex%5D=false&_=1476782117541

Что PARAMS выглядеть декодируется:

_ 
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() 

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

ответ

0

Поскольку этот вопрос относится к использованию https://datatables.net/ с бэкэндом из бутылочки 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" } 
       ] 
      });