From 99284605ee0c7befdbd5e462f6a04225950bc0d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=BD=A6=E4=BA=AE=E4=BA=AE?= Date: Sun, 29 Jan 2017 20:27:36 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=BA=E5=88=86=E7=B1=BB=E7=9B=AE=E5=BD=95?= =?UTF-8?q?=E7=AD=89=E5=90=8D=E7=A7=B0=E6=B7=BB=E5=8A=A0=E6=83=9F=E4=B8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DjangoBlog/spider_notify.py | 14 +++++++++----- DjangoBlog/urls.py | 21 +++++++++++---------- blog/context_processors.py | 3 +-- blog/middleware.py | 4 +++- blog/models.py | 18 +++++++++--------- blog/templatetags/blog_tags.py | 1 + 6 files changed, 34 insertions(+), 27 deletions(-) diff --git a/DjangoBlog/spider_notify.py b/DjangoBlog/spider_notify.py index 1f24083..cb47fdf 100644 --- a/DjangoBlog/spider_notify.py +++ b/DjangoBlog/spider_notify.py @@ -18,8 +18,9 @@ import requests from django.conf import settings -class sipder_notify(): - def baidu_notify(self, urls): +class spider_notify(): + @staticmethod + def baidu_notify(urls): try: data = '\n'.join(urls) result = requests.post(settings.BAIDU_NOTIFY_URL, data=data) @@ -27,12 +28,15 @@ class sipder_notify(): except Exception as e: print(e) - def __google_notify(self): + @staticmethod + def __google_notify(): try: ping_google('/sitemap.xml') except Exception as e: print(e) + @staticmethod def notify(self, url): - self.baidu_notify(url) - self.__google_notify() + + spider_notify.baidu_notify(url) + spider_notify.__google_notify() diff --git a/DjangoBlog/urls.py b/DjangoBlog/urls.py index 41349e0..111eace 100644 --- a/DjangoBlog/urls.py +++ b/DjangoBlog/urls.py @@ -20,6 +20,7 @@ from DjangoBlog.sitemap import StaticViewSitemap, ArticleSiteMap, CategorySiteMa from DjangoBlog.feeds import DjangoBlogFeed from django.views.decorators.cache import cache_page from django.conf import settings +from django.conf.urls.static import static sitemaps = { @@ -31,15 +32,15 @@ sitemaps = { } urlpatterns = [ - url(r'^admin/', admin.site.urls), - url(r'', include('blog.urls', namespace='blog', app_name='blog')), + url(r'^admin/', admin.site.urls), + url(r'', include('blog.urls', namespace='blog', app_name='blog')), - url(r'', include('comments.urls', namespace='comment', app_name='comments')), - url(r'', include('accounts.urls', namespace='account', app_name='accounts')), - url(r'', include('oauth.urls', namespace='oauth', app_name='oauth')), - url(r'^sitemap\.xml$', cache_page(60 * 60 * 10)(sitemap), {'sitemaps': sitemaps}, - name='django.contrib.sitemaps.views.sitemap'), - url(r'^feed/$', cache_page(60 * 60 * 10)(DjangoBlogFeed())), + url(r'', include('comments.urls', namespace='comment', app_name='comments')), + url(r'', include('accounts.urls', namespace='account', app_name='accounts')), + url(r'', include('oauth.urls', namespace='oauth', app_name='oauth')), + url(r'^sitemap\.xml$', cache_page(60 * 60 * 10)(sitemap), {'sitemaps': sitemaps}, + name='django.contrib.sitemaps.views.sitemap'), + url(r'^feed/$', cache_page(60 * 60 * 10)(DjangoBlogFeed())), - url(r'^search', include('haystack.urls'), name='search'), -] + url(r'^search', include('haystack.urls'), name='search'), + ] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) diff --git a/blog/context_processors.py b/blog/context_processors.py index 939dcca..872376e 100644 --- a/blog/context_processors.py +++ b/blog/context_processors.py @@ -21,7 +21,6 @@ from DjangoBlog.utils import logger def seo_processor(requests): key = 'seo_processor' - value = cache.get(key) if value: logger.info('get processor cache.') @@ -34,7 +33,7 @@ def seo_processor(requests): 'SITE_SEO_DESCRIPTION': settings.SITE_SEO_DESCRIPTION, 'SITE_DESCRIPTION': settings.SITE_DESCRIPTION, 'SITE_KEYWORDS': settings.SITE_SEO_KEYWORDS, - 'SITE_BASE_URL': 'https://' + requests.get_host() + '/', + 'SITE_BASE_URL': requests.scheme + '://' + requests.get_host() + '/', 'ARTICLE_SUB_LENGTH': settings.ARTICLE_SUB_LENGTH, 'nav_category_list': Category.objects.all(), 'nav_pages': Article.objects.filter(type='p', status='p') diff --git a/blog/middleware.py b/blog/middleware.py index b79d432..8af4510 100644 --- a/blog/middleware.py +++ b/blog/middleware.py @@ -44,6 +44,8 @@ class OnlineMiddleware(object): cache.set("online_ips", online_ips) def process_response(self, request, response): - cast_time = time.time() - self.start_time + cast_time = 0.921 + if self.__dict__ and 'start_time' in self.__dict__: + cast_time = time.time() - self.start_time response.content = response.content.replace(b'', str.encode(str(cast_time)[:5])) return response diff --git a/blog/models.py b/blog/models.py index d1c2273..dd9f900 100644 --- a/blog/models.py +++ b/blog/models.py @@ -1,13 +1,13 @@ from django.db import models from django.core.urlresolvers import reverse from django.conf import settings -# from django.template.defaultfilters import slugify from uuslug import slugify -from DjangoBlog.spider_notify import sipder_notify +from DjangoBlog.spider_notify import spider_notify from django.contrib.sites.models import Site -from DjangoBlog.utils import cache_decorator +from DjangoBlog.utils import cache_decorator, logger from django.utils.functional import cached_property + class BaseModel(models.Model): def save(self, *args, **kwargs): super().save(*args, **kwargs) @@ -15,10 +15,10 @@ class BaseModel(models.Model): if 'update_fields' in kwargs and len(kwargs['update_fields']) == 1 and kwargs['update_fields'][0] == 'views': return try: - notify = sipder_notify() notify_url = self.get_full_url() - notify.baidu_notify(notify_url) + spider_notify.baidu_notify(notify_url) except Exception as ex: + logger.error("notify sipder", ex) print(ex) def get_full_url(self): @@ -44,7 +44,7 @@ class Article(BaseModel): ('a', '文章'), ('p', '页面'), ) - title = models.CharField('标题', max_length=200) + title = models.CharField('标题', max_length=200, unique=True) body = models.TextField('正文') created_time = models.DateTimeField('创建时间', auto_now_add=True) last_mod_time = models.DateTimeField('修改时间', auto_now=True) @@ -196,7 +196,7 @@ class BlogPage(models.Model): class Category(BaseModel): """文章分类""" - name = models.CharField('分类名', max_length=30) + name = models.CharField('分类名', max_length=30, unique=True) created_time = models.DateTimeField('创建时间', auto_now_add=True) last_mod_time = models.DateTimeField('修改时间', auto_now=True) parent_category = models.ForeignKey('self', verbose_name="父级分类", blank=True, null=True) @@ -215,7 +215,7 @@ class Category(BaseModel): class Tag(BaseModel): """文章标签""" - name = models.CharField('标签名', max_length=30) + name = models.CharField('标签名', max_length=30, unique=True) created_time = models.DateTimeField('创建时间', auto_now_add=True) last_mod_time = models.DateTimeField('修改时间', auto_now=True) @@ -237,7 +237,7 @@ class Tag(BaseModel): class Links(models.Model): """友情链接""" - name = models.CharField('链接名称', max_length=30) + name = models.CharField('链接名称', max_length=30, unique=True) link = models.URLField('链接地址') sequence = models.IntegerField('排序', unique=True) created_time = models.DateTimeField('创建时间', auto_now_add=True) diff --git a/blog/templatetags/blog_tags.py b/blog/templatetags/blog_tags.py index 8e3db01..33b18b1 100644 --- a/blog/templatetags/blog_tags.py +++ b/blog/templatetags/blog_tags.py @@ -112,6 +112,7 @@ def load_sidebar(user): 加载侧边栏 :return: """ + logger.info('load sidebar') recent_articles = Article.objects.filter(status='p')[:settings.SIDEBAR_ARTICLE_COUNT] sidebar_categorys = Category.objects.all() most_read_articles = Article.objects.filter(status='p').order_by('-views')[:settings.SIDEBAR_ARTICLE_COUNT]