Merge pull request #461 from liangliangyy/dev

增加ip地址记录
且听风吟 5 years ago committed by GitHub
commit 8390180ace
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -41,7 +41,7 @@ class ElasticSearchBackend(BaseSearchBackend):
# pass
def _get_models(self, iterable):
models = iterable if iterable else Article.objects.all()
models = iterable if iterable and iterable[0] else Article.objects.all()
docs = self.manager.convert_to_doc(models)
return docs
@ -83,10 +83,10 @@ class ElasticSearchBackend(BaseSearchBackend):
'match', title=query_string)], minimum_should_match="70%")
search = ArticleDocument.search() \
.query('bool', filter=[q]) \
.filter('term', status='p') \
.filter('term', type='a') \
.source(False)[start_offset: end_offset]
.query('bool', filter=[q]) \
.filter('term', status='p') \
.filter('term', type='a') \
.source(False)[start_offset: end_offset]
results = search.execute()
hits = results['hits'].total

@ -30,6 +30,7 @@ class ElapsedTimeDocument(Document):
log_datetime = Date()
type = Text(analyzer='ik_max_word')
useragent = Text()
ip = Text()
class Index:
name = 'performance'
@ -45,7 +46,7 @@ class ElapsedTimeDocument(Document):
class ElaspedTimeDocumentManager():
@staticmethod
def create(url, time_taken, log_datetime, type, useragent):
def create(url, time_taken, log_datetime, type, useragent, ip):
# if not hasattr(ElaspedTimeDocumentManager, 'mapping_created'):
# ElapsedTimeDocument.init()
# setattr(ElaspedTimeDocumentManager, 'mapping_created', True)
@ -59,7 +60,7 @@ class ElaspedTimeDocumentManager():
time_taken=time_taken,
log_datetime=log_datetime,
type=type,
useragent=useragent)
useragent=useragent, ip=ip)
doc.save()

@ -15,6 +15,7 @@
import time
import logging
from ipware import get_client_ip
from blog.documents import ELASTICSEARCH_ENABLED, ElaspedTimeDocumentManager
logger = logging.getLogger(__name__)
@ -30,7 +31,7 @@ class OnlineMiddleware(object):
start_time = time.time()
response = self.get_response(request)
http_user_agent = request.META.get('HTTP_USER_AGENT', '')
ip, _ = get_client_ip(request)
if 'spider'.upper() not in http_user_agent.upper():
try:
cast_time = time.time() - start_time
@ -44,7 +45,8 @@ class OnlineMiddleware(object):
time_taken=time_taken,
log_datetime=timezone.now(),
type='blog',
useragent=http_user_agent)
useragent=http_user_agent,
ip=ip)
response.content = response.content.replace(
b'<!!LOAD_TIMES!!>', str.encode(str(cast_time)[:5]))
except Exception as e:

@ -11,6 +11,7 @@ from django.conf import settings
from django.urls import reverse
from django.utils import timezone
import os
from django.core.management import call_command
# Create your tests here.
@ -196,3 +197,14 @@ class ArticleTest(TestCase):
def test_errorpage(self):
rsp = self.client.get('/eee')
self.assertEqual(rsp.status_code, 404)
def test_commands(self):
call_command("ping_baidu", "all")
call_command("create_testdata")
call_command("clear_cache")
call_command("sync_user_avatar")
call_command("build_search_words")
from blog.documents import ELASTICSEARCH_ENABLED
if ELASTICSEARCH_ENABLED:
call_command("build_index")

Loading…
Cancel
Save