Konwertuję aplikację Python2.6 do aplikacji Python3 i utknąłem z serwerem. Udało mi się sprawić, że serwowanie żądań GET było w porządku, ale POST wciąż mnie unika. Oto, co zacząłem w 2.6, które działało, ale w 3.x normalny serwer nie obsługuje żądań POST. Z mojego czytania podręcznika Pythona wynika, że muszę zamiast tego używać klasy serwera CGI, a także mapować skrypty do tego katalogu. Wolałbym nie robić tego, ale nie mogę znaleźć innej drogi. Czy czegoś brakuje?Python3 http.server POST przykład
def do_POST(self):
ctype, pdict = cgi.parse_header(self.headers.get('content-type'))
if ctype == 'multipart/form-data':
query = cgi.parse_multipart(self.rfile, pdict)
self.send_response(301)
self.end_headers()
upfilecontent = query.get('upfile')
print("filecontent", upfilecontent[0])
self.wfile.write("<HTML>POST OK.<BR><BR>");
self.wfile.write(upfilecontent[0]);
W jaki sposób normalny serwer nie obsługuje postów w Pythonie 3, tak jak w Pythonie 2? Czy możesz wyjaśnić, na czym polega problem? –
Tak, to nie będzie implikować funkcji do_post(), podczas gdy będzie to funkcja z Python2. Nie ma przykładów solidnego kodu, jak go pokonać w dokumentacji Pythona, a Google Googling też nie pomógł. – Teifion