这是我的训练django项目。我正在使用GeoIP,django-modeltranslation,i18n。显示视频库页面非常慢。该数据库包含大约20个条目。
模型
from __future__ import unicode_literals
from django.db import models
from ckeditor_uploader.fields import RichTextUploadingField
from datetime import datetime
import urllib, json, re
from django.utils.translation import ugettext_lazy as _
class Video(models.Model):
class Meta:
abstract = True
title = models.CharField(max_length=80, unique=True)
text = RichTextUploadingField()
link = models.CharField(max_length=80)
slug = models.CharField(db_index=True,max_length=40,blank=True,null=True)
created_date = models.DateTimeField(auto_now_add=True)
pub_date = models.DateTimeField(default=datetime.now())
is_active = models.BooleanField(default=True)
position = models.IntegerField(default=0)
meta = models.TextField(blank=True,null=True)
def __unicode__(self):
return self.title
class VideoMessage(Video):
class Meta:
verbose_name = _('VideoMessage')
verbose_name_plural = _('VideoMessages')
翻译
from modeltranslation.translator import translator, TranslationOptions
from models import VideoMessage
class VideoMessageTranslationOptions(TranslationOptions):
fields = ('text', 'link', 'meta',)
translator.register(VideoMessage, VideoMessageTranslationOptions)
浏览
from django.shortcuts import render
from django.views.generic import View
from models import VideoMessage
class Index(View):
def get(self, request):
params={}
messages=VideoMessage.objects.exclude(is_active=False).exclude(link='').order_by('-position')
params['videos']={}
params['videos']['message']=messages
return render(request, 'index.html', params)
gprof2dot tree. 100%= ~2000ms
答案 0 :(得分:1)
我在每次渲染时都解析了图像。这是个坏主意。
答案 1 :(得分:0)
尝试找出花费最长时间的内容。 您可以使用Opbeat之类的内容来获取免费帐户。您可以看到不同请求需要花费时间的细分,以便您可以专注于任何缓慢的事情。
此外,这是仅在开发期间还是在生产期间发生的?在生产设置中使用DEBUG=True
不仅是一个坏主意,而且还会对性能产生重大影响。