Django:我如何自动生成和缓存我的urls.py?

时间:2013-08-07 07:43:17

标签: python django caching django-urls

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

文档没有说明你声称他们做了什么(或者更确切地说,你正在阅读过多的短语,这只是意味着“加载Python模块(如果尚未加载)”。

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