Django Performance,url.py评估和缓存

时间:2014-11-01 07:41:51

标签: python django python-2.7 optimization django-queryset

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

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

现在每当用户点击任何网址时,都会调用主url.py文件,该文件本身会调用每个url.py中的每一个,然后返回视图供用户点击。

我的问题非常简单,我们如何强制urls.py立即加载并直接从缓存中提供网址而不评估每个用户点击的每个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

1 个答案:

答案 0 :(得分:1)

这就是django处理HttpRequest https://docs.djangoproject.com/en/dev/topics/http/urls/#how-django-processes-a-request

的方式

前三个步骤是:

  
      
  1. Django确定要使用的根URLconf模块。通常,这个   是ROOT_URLCONF设置的值,但是如果传入   HttpRequest对象有一个名为urlconf的属性(由...设置)   中间件请求处理),其值将用于代替   ROOT_URLCONF设置。

  2.   
  3. Django加载Python模块并查找变量       urlpatterns的。这应该是django.conf.urls.url()的Python列表       实例

  4.   
  5. Django按顺序遍历每个URL模式,然后停在   第一个匹配请求的URL。

  6.   

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

但我认为你不需要这个。我会去缓存比网址更重的视图。