在执行某些数据库操作时在Flask中提供静态HTML

时间:2016-04-10 16:42:52

标签: python nginx flask static gunicorn

我的烧瓶应用程序中有一个终点,我想在数据库中执行一些日志记录,然后在响应中提供静态HTML文件。结束点如下:

@app.route("/man/<os>/<section>/<name>")

我有数千个不同的HTML文件,它取决于URL,其中一个需要返回。我已将Nginx配置为提供所有静态文件。但是,我正在Flask中处理这些URL,在数据库中进行日志记录,并通过请求模块流式传输HTML文件(见下文)

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

这导致向Nginx提出两个请求,我不相信这是执行此操作的最有效方法。有没有办法在flask应用程序中的数据库中进行日志记录,然后使用Nginx来提供静态HTML文件?

0 个答案:

没有答案