如何在web.py中处理url路径?

时间:2013-02-03 11:23:52

标签: python web wsgi web.py

我是web.py的新手,并且在代码href的代码中使用了大量硬编码的网址,如同{ a/login

问题是,
当我设置我的应用程序在某个路径下运行时,而不是URL的根,如
/?type=example

该链接将指引我到某个地方 http://example.com/appname/

预期/想要的是< http://example.com/login

我该如何处理?

1 个答案:

答案 0 :(得分:3)

在模板全局变量中提供web.ctx.homepath,并在路径之前输出。

来自http://webpy.org/cookbook/ctx

  

homepath - 用户请求的路径部分   修剪当前的应用程序。那是homepath + path =路径   实际上是由用户在HTTP中请求的。例如。 / admin这似乎是   从环境变量REAL_SCRIPT_NAME启动时派生。   它会影响web.url()将提供给提供的URL的内容。这反过来   影响web.seeother()的去向,可能会与之交互不良   你的网址重写方案(例如mod_rewrite)

template_globals = {
    'app_path': lambda p: web.ctx.homepath + p,
}

render = template.render(my_template_dir, globals=template_globals, base="mylayout")

然后您应该能够在模板中输出app_path

<a href="$app_path('/login')">Login</a>