我是CherryPy的新手,所以请耐心等待。我想要做的是在用户访问特定URL时执行特定操作。除了一个部分之外,URL通常总是相同的。该网址将类似于:http://myserver.mydomain.com/show_item.cgi?id=12345。除了12345之外,URL将始终相同。我想获取“数字串”,将它们放入变量中,然后重定向到另一个基于该变量即时构建的URL。我有构建URL的逻辑 - 我只是不知道如何“拦截”传入的URL并提取“数字串”。任何帮助将不胜感激。
答案 0 :(得分:0)
saaj我认为确实通过指向我here来回答我的问题。我的后续行动对我的情况来说是独一无二的,所以我会研究更多,并在需要时提出不同的问题。
答案 1 :(得分:0)
哦,从你的问题中不清楚你真的想要模拟类似CGI的文件处理程序URL。虽然回答is still there,但由于最近文档的变化,可能更难找到。
您可以在
/path/to/my.html
之类的URI中使用点,但Python方法名称不能 允许点。要解决此问题,默认调度程序将转换所有点 在尝试查找页面处理程序之前使用下划线的URI。在这个例子中, 因此,您可以将页面处理程序命名为def my_html
。
因此,通过以下操作,您可以将浏览器导航至http://127.0.0.1:8080/show_item.cgi?id=1234
。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import cherrypy
config = {
'global' : {
'server.socket_host' : '127.0.0.1',
'server.socket_port' : 8080,
'server.thread_pool' : 8
}
}
class App:
@cherrypy.expose
def show_item_cgi(self, id):
raise cherrypy.HTTPRedirect('https://google.com/search?q={0:d}'.format(int(id)))
if __name__ == '__main__':
cherrypy.quickstart(App(), '/', config)