Python py:全局修改(重写)测试web应用程序的请求路径?

Python py:全局修改(重写)测试web应用程序的请求路径?,python,bottle,Python,Bottle,我正在设置run with$uwsgi--http:1024--wsgi文件app.py。 app.py包含默认值: import bottle application = bottle.default_app() 还有许多路线装饰器和功能,例如: @bottle.route('/<A>/<B>') def somedef(): return bottle.template(...) 原因很清楚: Request类包装了WSGI环境,并提供了有用的 解析和访问

我正在设置run with
$uwsgi--http:1024--wsgi文件app.py
app.py
包含默认值:

import bottle
application = bottle.default_app()
还有许多路线装饰器和功能,例如:

@bottle.route('/<A>/<B>')
def somedef():
    return bottle.template(...)
原因很清楚:

Request类包装了WSGI环境,并提供了有用的 解析和访问表单数据、cookie、文件上载和其他 元数据大多数属性都是只读的

文件还规定:

向请求添加新属性实际上会将它们添加到环境中 字典(如'瓶子.请求.分机')。这是推荐的方法 存储和访问特定于请求的数据的方法

环境

包装好的WSGI环境字典。这是唯一真实的属性。所有其他属性实际上都是只读属性

battle.request.environ
包含请求URI、路径信息、battle.raw\u路径、battle.request、battle.request.urlparts和一些对象

以下哪一项可以编写并且需要编写以达到预期效果

这还提出了一个问题,即如何在客户端HTML上处理此类链接,而不必通过反复试验来更改每一个链接:

@bottle.hook('before_request')
def test():
    bottle.request.environ['PATH_INFO'] = bottle.request.environ['PATH_INFO'].replace("secret_URL/","")
对于客户:

  • 相对URL可能是一种解决方案,但它们可以破坏用户副本(除非浏览器替换它们),应用程序需要跟踪路径级别
  • 源站相对URL可以与
    一起使用(下面的链接)
相关的:


发件人:

或者添加一个WSGI中间件,从所有URL中去除尾部斜杠:

class StripPathMiddleware(object):
  def __init__(self, app):
    self.app = app
  def __call__(self, e, h):
    e['PATH_INFO'] = e['PATH_INFO'].rstrip('/')
    return self.app(e,h)

app = bottle.app()
myapp = StripPathMiddleware(app)
bottle.run(app=myapp)
有关更多getter方法/属性,请参见。
class StripPathMiddleware(object):
  def __init__(self, app):
    self.app = app
  def __call__(self, e, h):
    e['PATH_INFO'] = e['PATH_INFO'].rstrip('/')
    return self.app(e,h)

app = bottle.app()
myapp = StripPathMiddleware(app)
bottle.run(app=myapp)