如何在 python falcon 中进行内部重定向

How to do an internal redirect in python falcon

如何在 Falcon 中制作 "internal redirect"?

我设置静态路由:

app.add_static_route('/', os.path.abspath(here + '/static/')

我想将“/”重定向到“/index.html”,但不是作为 http 3xx,我想在内部做,所以就浏览器而言,路径仍然是 '/' 但内容是 '[= 的内容27=].html'.

从 Falcon 1.4.1 开始,没有办法"internal redirection"不回复单个文件,但我能够使用接收器和正则表达式实现它:

import os
import falcon

WORKING_DIRECTORY = os.getcwd()
STATIC = 'static/'

def apex(req, resp):
    resp.content_type = 'text/html; charset=utf-8'
    filename = os.path.abspath(os.path.join(WORKING_DIRECTORY, STATIC, 'index.html'))
    with open(filename, 'rt') as f:
        resp.body = f.read()

app.add_sink(apex, prefix='^/$')
app.add_static_route('/', os.path.abspath(os.path.join(WORKING_DIRECTORY, STATIC)))