Wie Antwort mit voller Palette von Daten zu GET Anfrage mit Web2py und Python-Anfragen

Ich bin sehr neu für web2py und Web-Anfragen so bitte halten Sie eine schlaffe Hand. Ich versuche, eine Anwendung mit web2py Framework zu machen, die es mir erlauben, folgendes zu tun: Ich sende POST-Anforderung an Remote-Server (Server-URL, zum Beispiel ist https://100.100.10.100 )

 headers = {'Content-type': 'application/json'} payload = {"uuid": some_file.json, "level": "public", "Url": " http://localhost:8000/myApp/default/file_to_process} requests.post('https://100.100.10.100', data=json.dumps(payload), headers=headers) 

Server empfängt Anforderung und mit Zähler GET-Anforderung versucht, Daten von some_file.json , die sich auf meiner Festplatte in /home/user/Desktop/some_files und mit der web2py Applikationsseite http://localhost:8000/myApp/default/file_to_process Mit untercode

 Controller: def file_to_process(): return dict(files=Expose('/home/user/Desktop/some_files')) View: {{=files}} 

Das Problem ist, dass der Server nur den ersten String aus der Datei erhalten kann, aber nicht den ganzen Datenbereich … Ich kann nicht verstehen, wo sollte ich nach einem Fehler suchen: im web2py Code oder in Python requests POST-Anfrage. Bitte machen Sie Ihre Vorschläge oder eine Lösung.

  • SSL-Fehler auf Python-GET-Anfrage
  • BitTorrent-Client: Peer-Liste von Tracker [Python]
  • Python dict: get vs setdefault
  • Wie werden POST- und GET-Variablen in Python behandelt?
  • Dynamic Filter ListView CBV in Django 1.7
  • Serving alle REST-Anfragen über GET mit Tornado
  • One Solution collect form web for “Wie Antwort mit voller Palette von Daten zu GET Anfrage mit Web2py und Python-Anfragen”

    Die Expose Funktionalität ist wirklich beabsichtigt, den Aufbau einer Benutzeroberfläche im Browser für die Auflistung und das Herunterladen von Dateien in einem bestimmten Verzeichnis zu ermöglichen, und so fehlt es an einer gewissen Flexibilität (z. B. gibt es einfach ein offenes Dateiobjekt an den Server zurück, ohne den Content-Length-Header zu setzen , Was dazu führen kann, dass die Datei über eine Chunked Transfer Codierung bedient wird, je nachdem wie web2py serviert wird).

    Allerdings brauchst du wirklich keine Expose hier, da du einfach Expose kannst, um individuell angeforderte Dateien zu bedienen:

     import os def file_to_process(): path = os.path.join('home', 'user', 'Desktop', 'some_files', *request.args) response.headers['Content-Type'] = 'application/json' return response.stream(path) 

    Beachten Sie, dass, wenn die Dateinamen eine .json-Erweiterung haben, die Einstellung des Content-Type-Headers nicht erforderlich ist, da answer.stream das automatisch verarbeitet.

    Auch wenn der Remote-Server es zulässt, anstatt die Remote-Server-Anforderung der Dateien von web2py, können Sie nur die Buchung der Dateien direkt auf den Remote-Server mit der ersten Anfrage (siehe zB https: //toolbelt.readthedocs. Org / en / latest / uploading-data.html ).

    Python ist die beste Programmiersprache der Welt.