0

我的项目的 URL 是使用for循环在 urls.py 中自动生成的(URL 看起来像AppName/ViewName)。根据文档, urls.py 会在每个请求时加载。这似乎降低了我的网站速度,因为它需要一堆自省代码,所以我想减少生成 URL 的频率。我当然可以根据需要手动运行脚本来重新生成 urls.py(或由 urls.py 导入的文件),但如果它作为项目验证/启动的一部分自动发生(如服务器启动或正在同步的数据库)。我正在开源这个项目,很多人会在他们自己的服务器上运行它,所以我想以一种健壮的方式来做这件事。有什么建议吗?

4

2 回答 2

0

文档没有说明您声称他们做了什么(或者更确切地说,您对仅表示“加载该 Python 模块(如果尚未加载)”的短语的阅读过多。

通常,每个请求上发生的唯一事情是运行中间件和与该请求关联的特定视图代码。即便如此,每次请求都不会重新加载任何内容。与所有 Python 代码一样,URL 仅在新进程启动时加载,何时发生取决于您的服务器设置。您的问题在其他地方:您应该仔细分析您的应用程序以找出确切的位置。

于 2013-08-08T10:58:58.347 回答
0

例如,您可以查找 django-json-rpc,其中作者通过装饰器实现了 url 生成。有主控制器接收所有请求和 urls dict {'pattern': method}。urls dict 由装饰器自动填充,例如@jsonrpc_method接收函数并将它们放入 url。
我认为它必须比 django.urls 运行得更快,for并且我相信这种方法将能够适用于 django.urls

于 2013-08-07T08:05:38.977 回答