如何在 CherryPy 中使用 URL 正则表达式?
How to use URL regex in CherryPy?
我正在尝试将 URL 正则表达式添加到 CherryPy,但由于某些原因,并非一切正常。我哪里弄错了?
我需要 URL 选择看起来像示例。com/opts/someopts。
但是现在有了这样的请求,我得到了一个 404 错误。
class SomeClass:
def __init__(self, config):
someactions
@cherrypy.expose
def opts(self):
templ = Template(filename='dyn/opts.tmpl', lookup=self.lookup)
self.token = random.randint(0, 99999999)
return templ.render(opts=self.config, pageid='SETTINGS',
token=self.token, docroot=self.docroot)
d = cherrypy.dispatch.RoutesDispatcher()
d.connect(action='opts', name='opts', route='/opts/:optsname', controller=opts)
conf = {
'/opts': {
'request.dispatch': d
},
}
cherrypy.tree.mount(root=None, config=conf)
如果您想做的只是将查询字符串参数以某种方式传递给控制器(根据您在问题中添加的评论),这是一个简单的示例(CherryPy 18.1.1):
import cherrypy
class Opts:
@cherrypy.expose
def opts(self, optsname):
return optsname
d = cherrypy.dispatch.RoutesDispatcher()
d.connect(action='opts', name='opts', route='/opts/{optsname}', controller=Opts(), conditions=dict(method=["GET"]))
conf = {
'/': {
'request.dispatch': d
},
}
cherrypy.quickstart(None, '/', config=conf)
我正在尝试将 URL 正则表达式添加到 CherryPy,但由于某些原因,并非一切正常。我哪里弄错了?
我需要 URL 选择看起来像示例。com/opts/someopts。
但是现在有了这样的请求,我得到了一个 404 错误。
class SomeClass:
def __init__(self, config):
someactions
@cherrypy.expose
def opts(self):
templ = Template(filename='dyn/opts.tmpl', lookup=self.lookup)
self.token = random.randint(0, 99999999)
return templ.render(opts=self.config, pageid='SETTINGS',
token=self.token, docroot=self.docroot)
d = cherrypy.dispatch.RoutesDispatcher()
d.connect(action='opts', name='opts', route='/opts/:optsname', controller=opts)
conf = {
'/opts': {
'request.dispatch': d
},
}
cherrypy.tree.mount(root=None, config=conf)
如果您想做的只是将查询字符串参数以某种方式传递给控制器(根据您在问题中添加的评论),这是一个简单的示例(CherryPy 18.1.1):
import cherrypy
class Opts:
@cherrypy.expose
def opts(self, optsname):
return optsname
d = cherrypy.dispatch.RoutesDispatcher()
d.connect(action='opts', name='opts', route='/opts/{optsname}', controller=Opts(), conditions=dict(method=["GET"]))
conf = {
'/': {
'request.dispatch': d
},
}
cherrypy.quickstart(None, '/', config=conf)