Python 在Flask中提供静态HTML,同时执行一些DB操作
我的flask应用程序中有一个端点,我希望在DB中执行一些日志记录,然后在响应中提供一个静态HTML文件。终点如下所示:Python 在Flask中提供静态HTML,同时执行一些DB操作,python,nginx,flask,static,gunicorn,Python,Nginx,Flask,Static,Gunicorn,我的flask应用程序中有一个端点,我希望在DB中执行一些日志记录,然后在响应中提供一个静态HTML文件。终点如下所示: @app.route("/man/<os>/<section>/<name>") 这导致了对Nginx的两个请求,我认为这不是最有效的方法。有没有办法在flask应用程序的DB中进行日志记录,然后使用Nginx提供静态HTML文件 是的,只需一个请求就可以完成 其他web服务器具有X-Sendfile头,并且Flask具有内置支持 Ngi
@app.route("/man/<os>/<section>/<name>")
这导致了对Nginx的两个请求,我认为这不是最有效的方法。有没有办法在flask应用程序的DB中进行日志记录,然后使用Nginx提供静态HTML文件 是的,只需一个请求就可以完成 其他web服务器具有
X-Sendfile
头,并且Flask
具有内置支持
Nginx不支持此标头,它具有类似的特性。不幸的是
您必须配置nginx
路由以支持它,并使Flask
返回X-Accel-Redirect
标题
看看这本书,我想它会对你有用的
我不是给你一个完整的解决方案,因为我认为你只需要一个关于X-Accel-Redirect
标题的提示和一些指针
其他一些有用的资源:
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'])