python - Access flaske post parametre

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg sender to indlægsparametre med node js til flaske service ved hjælp af Axios bibliotek


var axios = require('axios')

axios.post('http://localhost:8080/filter-tags', {
   xml: 'Fred',
   tags: 'Flintstone'
})
.then(function (response) {
    console.log(response);
})
.catch(function (error) {
    console.log(error);
});


Min flaske service er


from bottle import route, run, request
from pprint import pprint

@route('/filter-tags', method='POST')
def filterTags():
    xml1 = request.POST.xml
    xml2 = request.forms.get('xml')
    print(pprint(vars(request.POST)))
    print('-->' + xml1 +'<----')
    print(xml2)
    return 'trololo'

run(host='localhost', port=8080, debug=True)


Min output er


 {'dict': {'{"xml":"Fred","tags":"Flintstone"}': ['']}} 
 None  // don't know why this value appears here
 --><----  // xml1
 None // xml2


Her er link til flaske docs, men jeg ser ingen min fejl [10]


Nogen ideer om, hvordan man får adgang til parametre? Tak.

Bedste reference


By default, axios serializes JavaScript objects to JSON. Jeg tror, ​​at du bruger biblioteket Node.js. Overvej venligst brug querystring for at sende application/x-www-form-urlencoded format


var querystring = require('querystring');
axios.post('http://localhost:8080/filter-tags', querystring.stringify({ 
   xml: 'Fred',
   tags: 'Flintstone'

}));


Ved at gøre dette får du {'dict': {'xml': ['Fred'], 'tags': ['Flintstone']}}, hvilket er meget nemt at få datas. I dette tilfælde bare request.POST.xml