Coder Social home page Coder Social logo

biningo / mind Goto Github PK

View Code? Open in Web Editor NEW
5.0 2.0 0.0 28.34 MB

【N年前作品,域名已经废了,初心和回忆~】个人博客网站(destruction)

License: GNU General Public License v3.0

Python 1.05% JavaScript 61.17% CSS 18.64% HTML 16.30% PHP 0.44% SCSS 1.89% Less 0.52%

mind's Introduction

Biningo-Blog

个人博客网站

搭建个人博客

前言:

杂谈:我为什么开始写博客,我又不是什么大犇

这篇文章说出了我,不止我,以及和我一样的刚入行的菜鸟的心声 写博客,建网站,不是为了炫耀啥知识,更不是为了消遣,而是总结自己的知识,完善结构体系,抒发自己的感受罢了

进入正题


1、目录结构

在这里插入图片描述 其中最主要的模块为ArticleApp有关文章的模块 然后就是UserApp 有关用户的模块,登录注册评论关联留言等 其次就是OtherApp和PersonalSpaceApp包括个人动态公告广播消息、友链 、等 其它模块本来想做完善点的,但是由于各种原因,看以后有没有时间吧,本来想建立一个分层的架构,类似mvc的,想想一个小博客网站,加上自己能力不足,就放弃了

2、表结构

先上图

核心模块 从左到右从上到下

  1. 用户表
  2. 评论表:faher_comment_id是自连接,代表是评论还是回复,有father说明是回复
  3. 分类表
  4. 文章表
  5. 标签文章多对多中间表
  6. 标签表
  7. 专题表

核心

边缘模块

  1. 友链表
  2. 个人动态表
  3. 公告表
  4. 用户表
  5. 留言表
  6. 陌生用户表:根据ip自动建立,用于统计访问人数和访问量

在这里插入图片描述

3、访问量统计

import uuid

from django.db.models import F

from UserApp.models import StrangeUser, UserAccount

USER_KEY = 'uid'


class UserAccessMiddleWare:
    def __init__(self,get_response):
        self.get_response = get_response

    def __call__(self,request):

        email = request.session.get('user_email')
        if email:       //如果用户已经登录 则增加访问量
            UserAccount.objects.filter(email=email).update(access_count = F('access_count')+1)
            request.user_account = UserAccount.objects.filter(email=email)[0]
        else:
            request.user_account = None


        sUser = self.get_sUser(request)
        request.sUser = sUser

        response = self.get_response(request)
        return response

    def get_sUser(self,request)://获取陌生用户ip 并且入库
        uid = request.session.get(USER_KEY)
        if uid!=None:
            sUser = StrangeUser.objects.filter(uid=uid)
            sUser.update(access_count=F('access_count') + 1)
            return sUser[0]
        else:
            uid = request.META.get('REMOTE_ADDR')
            request.session.set_expiry(60*60*24*10)
            request.session[USER_KEY] = uid
            sUser = StrangeUser.objects.filter(uid=uid)

            if len(sUser):  //如果是新用户 则入库
                sUser.update(access_count=F('access_count')+1)
            else:
                sUser=[]
                ssUser = StrangeUser()
                ssUser.uid = uid
                ssUser.access_count = 1
                ssUser.save()
                sUser.append(ssUser)
            return sUser[0]



4、项目截图

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 演示地址:http://www.binnb.top github地址: https://github.com/biningo/Biningo-Blog 欢迎star!

mind's People

Contributors

biningo avatar

Stargazers

killliu avatar  avatar  avatar  avatar  avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.