def blog(req, blog_id): master_14 = RedisDriver().master_14 ip = '' if 'HTTP_X_FORWARDED_FOR' in req.META: ip = req.META['HTTP_X_FORWARDED_FOR'] else: ip = req.META['REMOTE_ADDR'] user_agent = req.META.get('HTTP_USER_AGENT', "") spider = False spider_list = ["Spider", "spider", "Googlebot", "bingbot"] for i in spider_list: if i in user_agent: spider = True break ips_access = cache.get("ips_access_{0}".format(blog_id), []) ip_attribution = "匿名" if len(ip) < 20: if not spider: ip_attribution = sina_ip(ip) if ip not in ips_access: ips_access.append(ip) # print(len(ips_access)) if len(ips_access) > 5: ips_access.pop(0) cache.set("ips_access_{0}".format(blog_id), ips_access, 60 * 60 * 24 * 30) ips_info = {} if ips_access: for ip in ips_access: ip_attribution = sina_ip(ip) ip_access_time = master_14.get(ip) ips_info[ip_attribution] = ip_access_time ips_info = sorted(ips_info.items(), key=lambda d: d[1], reverse=True) ip_obj = IP_access.objects.filter(ip=ip) blog_obj = Blog.objects.filter(blog_id=blog_id) ip_num = 0 if blog_obj: blog = Blog.objects.get(blog_id=blog_id) if ip_obj: # 如果已存在此ip ip = IP_access.objects.get(ip=ip) ip.blogs.add(blog) ip_num = blog.ip_access_set.all() blog.IP_num = len(ip_num) blog.PV_num += 1 blog.save() else: ip = IP_access(ip=ip) ip.save() ip.blogs.add(blog) ip_num = blog.ip_access_set.all() blog.IP_num = len(ip_num) blog.PV_num += 1 blog.save() # print(len(ip_num)) if req.method == "POST": content = req.POST.get('content', None) p_id = req.POST.get('p_id', None) if p_id and content: blog = Blog.objects.get(blog_id=blog_id) Replay.objects.create(content=content, blog=blog, replay_time=datetime.datetime.today(), replay_user=ip_attribution, replay_id=0, parent_id=p_id) return HttpResponse(json.dumps({"content": content})) elif content: item = Blog.objects.get(blog_id=blog_id) num = 0 try: blog = Blog.objects.get(blog_id=blog_id) replays_re = Replay.objects.filter(blog=blog, replay_id=0) replays_er = Replay.objects.filter(blog=blog) replays = int(len(replays_er)) - (len(replays_re)) num = replays except Exception as e: error_log.error(e) Replay.objects.create(content=content, blog=item, replay_time=datetime.datetime.today(), replay_user=ip_attribution, replay_id=num + 1, parent_id=0) return HttpResponse(json.dumps({"content": content})) blog_id = blog_id replays = None replay_num = None PV_num = None to_replays_dict = {} blog_list = [] try: # replays = Blog.objects.get(blog_id=blog_id).replay_set.all() blog = Blog.objects.get(blog_id=blog_id) categorie = blog.categorie PV_num = blog.PV_num replays = Replay.objects.filter(blog=blog, parent_id=0) replay_num = int(len(replays)) # 评论数量 for replay in replays: to_replays = Replay.objects.filter(blog=blog, parent_id=replay.id) to_replays_dict[replay] = to_replays except Exception as e: error_log.error(e) return render_to_response(blog_id + '.html', { 'blog_id': blog_id, 'replay_num': replay_num, 'PV_num': PV_num, 'ip_num': ip_num, 'replays': replays, 'to_replays_dict': to_replays_dict, 'ips_info': ips_info }, context_instance=RequestContext(req))
def blog(req, blog_id): ip = '' if 'HTTP_X_FORWARDED_FOR' in req.META: ip = req.META['HTTP_X_FORWARDED_FOR'] else: ip = req.META['REMOTE_ADDR'] ip_attribution = sina_ip(ip) ip_obj = IP_access.objects.filter(ip=ip) blog_obj = Blog.objects.filter(blog_id=blog_id) ip_num = 0 if blog_obj: blog = Blog.objects.get(blog_id=blog_id) if ip_obj: #如果已存在此ip ip = IP_access.objects.get(ip=ip) ip.blogs.add(blog) ip_num = blog.ip_access_set.all() blog.IP_num = len(ip_num) blog.PV_num += 1 blog.save() else: ip = IP_access(ip=ip) ip.save() ip.blogs.add(blog) ip_num = blog.ip_access_set.all() blog.IP_num = len(ip_num) blog.PV_num += 1 blog.save() print(len(ip_num)) if req.method == "POST": content = req.POST.get('content', None) p_id = req.POST.get('p_id', None) if p_id and content: blog = Blog.objects.get(blog_id=blog_id) Replay.objects.create(content=content, blog=blog, replay_time=datetime.datetime.today(), replay_user=ip_attribution, replay_id=0, parent_id=p_id) return HttpResponse(json.dumps({"content": content})) elif content: item = Blog.objects.get(blog_id=blog_id) num = 0 try: blog = Blog.objects.get(blog_id=blog_id) replays_re = Replay.objects.filter(blog=blog, replay_id=0) replays_er = Replay.objects.filter(blog=blog) replays = int(len(replays_er)) - (len(replays_re)) num = replays except Exception as e: error_log.error(e) Replay.objects.create(content=content, blog=item, replay_time=datetime.datetime.today(), replay_user=ip_attribution, replay_id=num + 1, parent_id=0) return HttpResponse(json.dumps({"content": content})) blog_id = blog_id replays = None replay_num = None PV_num = None to_replays_dict = {} blog_list = [] try: # replays = Blog.objects.get(blog_id=blog_id).replay_set.all() blog = Blog.objects.get(blog_id=blog_id) categorie = blog.categorie PV_num = blog.PV_num replays = Replay.objects.filter(blog=blog, parent_id=0) replay_num = int(len(replays)) # 评论数量 for replay in replays: to_replays = Replay.objects.filter(blog=blog, parent_id=replay.id) to_replays_dict[replay] = to_replays except Exception as e: error_log.error(e) return render_to_response(blog_id + '.html', { 'blog_id': blog_id, 'replay_num': replay_num, 'PV_num': PV_num, 'ip_num': ip_num, 'replays': replays, 'to_replays_dict': to_replays_dict, }, context_instance=RequestContext(req))
def blog(req, blog_id): print('11111111111111111111') master_14 = RedisDriver().master_14 ip = '' if 'HTTP_X_FORWARDED_FOR' in req.META: ip = req.META['HTTP_X_FORWARDED_FOR'] else: ip = req.META['REMOTE_ADDR'] user_agent = req.META.get('HTTP_USER_AGENT', "") spider = False spider_list = ["Spider", "spider", "Googlebot", "bingbot"] for i in spider_list: if i in user_agent: spider = True break ips_access = cache.get("ips_access_{0}".format(blog_id), []) ip_attribution = "匿名" if len(ip) < 20: if not spider: ip_attribution = sina_ip(ip) if ip not in ips_access: ips_access.append(ip) # print(len(ips_access)) if len(ips_access) > 5: ips_access.pop(0) cache.set("ips_access_{0}".format(blog_id), ips_access, 60 * 60 * 24 * 30) ips_info = {} if ips_access: for ip in ips_access: ip_attribution = sina_ip(ip) ip_access_time = master_14.get(ip) if ip_access_time: ips_info[ip_attribution] = ip_access_time ips_info = sorted(ips_info.items(), key=lambda d: d[1], reverse=True) ip_obj = IP_access.objects.filter(ip=ip) blog_obj = Blog.objects.filter(blog_id=blog_id) ip_num = 0 if blog_obj: blog = Blog.objects.get(blog_id=blog_id) if ip_obj: # 如果已存在此ip ip = IP_access.objects.get(ip=ip) ip.blogs.add(blog) ip_num = blog.ip_access_set.all() blog.IP_num = len(ip_num) blog.PV_num += 1 blog.save() else: ip = IP_access(ip=ip) ip.save() ip.blogs.add(blog) ip_num = blog.ip_access_set.all() blog.IP_num = len(ip_num) blog.PV_num += 1 blog.save() # print(len(ip_num)) if req.method == "POST": content = req.POST.get('content', None) p_id = req.POST.get('p_id', None) if p_id and content: blog = Blog.objects.get(blog_id=blog_id) Replay.objects.create(content=content, blog=blog, replay_time=datetime.datetime.today(), replay_user=ip_attribution, replay_id=0, parent_id=p_id) return HttpResponse(json.dumps({"content": content})) elif content: item = Blog.objects.get(blog_id=blog_id) num = 0 try: blog = Blog.objects.get(blog_id=blog_id) replays_re = Replay.objects.filter(blog=blog, replay_id=0) replays_er = Replay.objects.filter(blog=blog) replays = int(len(replays_er)) - (len(replays_re)) num = replays except Exception as e: error_log.error(e) Replay.objects.create(content=content, blog=item, replay_time=datetime.datetime.today(), replay_user=ip_attribution, replay_id=num + 1, parent_id=0) return HttpResponse(json.dumps({"content": content})) blog_id = blog_id replays = None replay_num = None PV_num = None to_replays_dict = {} blog_list = [] try: # replays = Blog.objects.get(blog_id=blog_id).replay_set.all() blog = Blog.objects.get(blog_id=blog_id) categorie = blog.categorie PV_num = blog.PV_num replays = Replay.objects.filter(blog=blog, parent_id=0) replay_num = int(len(replays)) # 评论数量 for replay in replays: to_replays = Replay.objects.filter(blog=blog, parent_id=replay.id) to_replays_dict[replay] = to_replays except Exception as e: error_log.error(e) return render_to_response(blog_id + '.html', { 'blog_id': blog_id, 'replay_num': replay_num, 'PV_num': PV_num, 'ip_num': ip_num, 'replays': replays, 'to_replays_dict': to_replays_dict, 'ips_info': ips_info }, context_instance=RequestContext(req))