1

目前,我正在使用 mod_wsgi 在服务器上开发 python 应用程序。但是,应用程序会很大,非常大,我的问题如下:

如何在 mod_wsgi(urls, localhost/login route 等) 上做一个好的路由系统。通常,我这样做是:

urls = [
    (r'^$', index),
    (r'hello/?$', hello),
    (r'hello/(.+)$', hello)
]

def application(environ, start_response):
    """
    The main WSGI application. Dispatch the current request to
    the functions from above and store the regular expression
    captures in the WSGI environment as  `myapp.url_args` so that
    the functions from above can access the url placeholders.

    If nothing matches call the `not_found` function.
    """
    path = environ.get('PATH_INFO', '').lstrip('/')
    for regex, callback in urls:
        match = re.search(regex, path)
        if match is not None:
            environ['myapp.url_args'] = match.groups()
            return callback(environ, start_response)
    return not_found(environ, start_response)

现在,我在想......如果我在那里写每条路线,python 文档将有成千上万的代码行。它会让它变慢吗?

不要因为我不喜欢而写框架,我想从头开始。

4

1 回答 1

1

你真的不想自己做。使用现有的 WSGI 组件库(例如 Werkzeug)会更好,它具有处理所有这些的组件。WSGI 组件库(例如 Werkzeug)不是框架,而是可用于创建框架的组件。至少去研究 Werkzeug 所做的事情并从中学习,而不是采取一种你想从头开始做所有事情的立场。其他人之前已经解决了这些问题,所以不要忽视他们所做的和已知的工作。

于 2013-09-07T23:04:55.940 回答