Ich habe einen Endpunkt in meiner Kolben-Anwendung, wo ich einige Protokollierung in der DB durchführen und dann eine statische HTML-Datei in der Antwort dienen soll. Der Endpunkt sieht wie folgt aus:Serving Static HTML in Flask während der Durchführung einiger DB-Operationen
@app.route("/man/<os>/<section>/<name>")
Ich habe Tausende von verschiedenen HTML-Dateien, und es hängt von der URL, die eine von ihnen muss zurückgegeben werden. Ich habe Nginx konfiguriert, um alle statischen Dateien zu bedienen. Aber, ich bin der Umgang mit diesem URLs in Glaskolben, die Protokollierung in der DB zu tun, und das Streaming die HTML-Datei durch das Anfragen-Modul (siehe unten)
host = request.host
path = 'man_pages/' + os + '/html' + section + '/' + name + '.html'
url = 'http://' + host + url_for('static', filename=path) #TODO don't hardcode the scheme
req = requests.get(url, stream=True)
return Response(stream_with_context(req.iter_content()), content_type=req.headers['content-type'])
Dies wird in zwei Anfragen an Nginx resultierende und ich nicht Glaube, dass dies die effizienteste Methode ist, dies zu tun. Gibt es eine Möglichkeit, die DB in der Flask-Anwendung zu loggen und dann Nginx zu verwenden, um die statische HTML-Datei zu bedienen?
Danke. Es funktionierte :) –