如何使我的主页非常快?

2024-09-28 23:22:16 发布

您现在位置:Python中文网/ 问答频道 /正文

它很管用,我想让它超快。index page非常静态,除非日期更新或地图更新,否则几天内不会真正更改。所以应该可以很快地优化,因为它变化不大。我最近迁移到人力资源部,我的URI是montoproject.appspot.com网站我重写了它,使它只有python和django/html(没有数据层访问)Memcache?其他选择?减少javascript?我首先确保数据层不会被触碰:

def get(self):
    logo = ''
    if get_host().find('.br') > 0:
        cookie_django_language = 'pt-br'
        logo = 'montao'
    elif get_host().find('allt') > 0 and not self.request.get('hl'):
        logo = ''
        cookie_django_language = 'sv'
    elif get_host().find('gralumo') > 0 \
        and not self.request.get('hl'):
        cookie_django_language = 'es_AR'  # learn
    else:
        logo = ''
        cookie_django_language = self.request.get('hl', '')  # edit
    if cookie_django_language:
        if cookie_django_language == 'unset':
            del self.request.COOKIES['django_language']
        else:
            self.request.COOKIES['django_language'] = \
                cookie_django_language
        translation.activate(cookie_django_language)
    loginmsg = ''
    user = users.get_current_user()
    twittername = None
    client = OAuthClient('twitter', self)
    if client.get_cookie():
        info = client.get('/account/verify_credentials')
        twittername = info['screen_name']

    # seconds_valid = 8600
    # self.response.headers['Cache-Control'] = "public, max-age=%d" % seconds_valid

    if logo == 'montao':
        self.render(
            u'montao',
            host=get_host(),
            twittername=twittername,
            continue_url=get_host(),
            loginmsg=loginmsg,
            form_url=blobstore.create_upload_url('/fileupload'),
            user_url=(api.users.create_logout_url(self.request.uri) if api.users.get_current_user() else api.users.create_login_url(self.request.uri)),
            admin=users.is_current_user_admin(),
            user=(users.get_current_user() if users.get_current_user() else ''
                  ),
            logo=logo,
            )
    else:
        self.render(
            u'home',
            host=get_host(),
            twittername=twittername,
            continue_url=get_host(),
            loginmsg=loginmsg,
            form_url=blobstore.create_upload_url('/fileupload'),
            latest=Ad.all().filter('published =',
                    True).order('-modified').get(),
            user_url=(api.users.create_logout_url(self.request.uri) if api.users.get_current_user() else api.users.create_login_url(self.request.uri)),
            admin=users.is_current_user_admin(),
            guser=(users.get_current_user() if users.get_current_user() else ''
                   ),
            logo=logo,
            )

Tags: djangoselfhosturlgetifcookierequest
2条回答

我不知道python,但是如果它几天不改变,我相信你可以写一些东西把上面的内容转换成HTML(比如每小时一次),然后提供HTML版本。这将给你一个最大的优化可能,因为你的主页然后根本不必由脚本引擎处理。在

通常,我建议将页面倒置,将索引.html输出为静态文件,以及css和js文件,然后向服务器发出AJAX请求以填充动态位。静态文件加载非常快。在

通过使用客户端JavaScript来确定要使用哪个logo和这样的logo,您仍然可以做到这一点,但是获得呈现的文件上载表单会比较慢,因为create_upload_url需要在服务器端进行。在

相关问题 更多 >