Python 在Flask中提供静态HTML,同时执行一些DB操作

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

我的flask应用程序中有一个端点,我希望在DB中执行一些日志记录,然后在响应中提供一个静态HTML文件。终点如下所示:

@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'])