将特定url映射到Cherrypy响应?

2024-06-26 04:05:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用CherryPy编写一个web应用程序,我需要映射URL/.well-known/acme challenge/kh5legblpphdrhj-BAf7cyTXe8qcN6kL4CJQMOLe1fXU 响应KH5LEgbLPhDrhJ-BAf7cyTXe8qcN6kL4CJQMOLe1fXU.8bOE0CjbktH8JYB\u jq5aFEqbG-37xhjdaihwppnkdq以获取ssl证书

我试过用这样的别名

cherrpypy.expose("/.well-known/acme-challenge/KH5LEgbLPhDrhJ-BAf7cyTXe8qcN6kL4CJQMOLe1fXU")
def ssl_cert_map(self):
    return "KH5LEgbLPhDrhJ-BAf7cyTXe8qcN6kL4CJQMOLe1fXU.8bOE0CjbktH8JYB_jq5aFEqbG-37XhHjDAIhWppNkdQ"

但是,当我尝试在/.well-known/acme challenge/kh5legblpphdrhj-BAf7cyTXe8qcN6kL4CJQMOLe1fXU访问它时,我得到一个404错误。 我怎么能做到这样呢/.well-known/acme challenge/KH5LEgbLPhDrhJ-BAf7cyTXe8qcN6kL4CJQMOLe1fXU给我KH5LEgbLPhDrhJ-BAf7cyTXe8qcN6kL4CJQMOLe1fXU.8bOE0CjbktH8JYB\u jq5aFEqbG-37xhjdaihwppnkdq


Tags: web应用程序urlsslacme证书challengecherrypy
1条回答
网友
1楼 · 发布于 2024-06-26 04:05:13

cherrypy.expose方法中没有提到URL。expose方法公开Cherrypy使用的类方法

为了将URL映射到特定的方法,必须使用RoutesDispatcher

示例:

import cherrypy

class Root:

    cherrpypy.expose
    def ssl_cert_map(self):
        return "KH5LEgbLPhDrhJ-BAf7cyTXe8qcN6kL4CJQMOLe1fXU.8bOE0CjbktH8JYB_jq5aFEqbG-37XhHjDAIhWppNkdQ"

app_dispatcher = cherrypy.dispatch.RoutesDispatcher()

app_dispatcher.connect(
name='ssl-cert',
route='/.well-known/acme-challenge/KH5LEgbLPhDrhJ-BAf7cyTXe8qcN6kL4CJQMOLe1fXU',
action='ssl_cert_map',
controller=Root())

if __name__ == '__main__':

    server_config = {
        '/': {
            'request.dispatch': app_dispatcher
        }
    }
    cherrypy.tree.mount(root=None, config=server_config)
    cherrypy.engine.start()

引用:cherrypy - URL dispatcher

相关问题 更多 >