Python py:全局修改(重写)测试web应用程序的请求路径?
我正在设置run withPython 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环境,并提供了有用的 解析和访问
$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)