Python Django性能、url.py评估和缓存

Python Django性能、url.py评估和缓存,python,django,python-2.7,optimization,django-queryset,Python,Django,Python 2.7,Optimization,Django Queryset,我和django一起开发了这个项目。现在面临的优化问题很少。我已经创建/使用了大约53个小应用程序。每个应用程序都有其本地url.py文件及其定义的url 现在有一个主项目url.py。此url.py文件定义url并包含每个应用程序本地url.py 现在,每当用户点击任何url时,就会调用主url.py文件,该文件本身会调用每个url.py,然后返回视图供用户点击 我的问题很简单,我们如何强制立即加载url.py并直接从缓存中提供url,而无需对每个用户命中的url.py进行评估 Test co

我和django一起开发了这个项目。现在面临的优化问题很少。我已经创建/使用了大约53个小应用程序。每个应用程序都有其本地url.py文件及其定义的url

现在有一个主项目url.py。此url.py文件定义url并包含每个应用程序本地url.py

现在,每当用户点击任何url时,就会调用主url.py文件,该文件本身会调用每个url.py,然后返回视图供用户点击

我的问题很简单,我们如何强制立即加载url.py并直接从缓存中提供url,而无需对每个用户命中的url.py进行评估

Test configurations:
Django 1.5
python 2.7
Server django test server "runserver"

Deployment Configuration:
Django 1.5
python 2.7
Server apache22 with modwisgi

这就是django处理HttpRequest的方式

前3个步骤是:

  • Django确定要使用的根URLconf模块。通常情况下 是ROOT_URLCONF设置的值,但如果 HttpRequest对象有一个名为urlconf的属性(由 中间件请求处理),它的值将被用来代替 ROOT_URLCONF设置

  • Django加载Python模块并查找变量 URL模式。这应该是django.conf.url.url()的Python列表 实例

  • Django按顺序运行每个URL模式,并在 第一个与请求的URL匹配的URL

  • 出于您的目的,您需要在2和3之间编写自己的中间件,它首先在缓存中查找模式,如果找不到,则应继续执行步骤3


    但我认为你不需要这个。我会选择缓存比URL重得多的视图

    因为我的网站是动态内容,所以内容是用logedin用户过滤的。此外,每个应用程序都有自己的url.py(url是动态的,但每次都与每个注册模型的CRUD url相同),这些url导入到main url.py中