Django、Python搭建我的博客、我的網站

搭建我的博客

前言:

我爲何要寫博客?
雜談:我爲何開始寫博客,我又不是什麼大犇git

這篇文章說出了我,不止我,以及和我同樣的剛入行的菜鳥的心聲
寫博客,建網站,不是爲了炫耀啥知識,更不是爲了消遣,而是總結本身的知識,完善結構體系,抒發本身的感覺罷了


github

進入正題


一、目錄結構

在這裏插入圖片描述
其中最主要的模塊爲ArticleApp有關文章的模塊
而後就是UserApp 有關用戶的模塊,登陸註冊評論關聯留言
其次就是OtherApp和PersonalSpaceApp包括我的動態公告廣播消息、友鏈 、等
其它模塊原本想作完善點的,可是因爲各類緣由,看之後有沒有時間吧,原本想創建一個分層的架構,相似mvc的,想一想一個小博客網站,加上本身能力不足,就放棄了


django

二、表結構

先上圖session

核心模塊
從左到右從上到下架構

  1. 用戶表
  2. 評論表:faher_comment_id是自鏈接,表明是評論仍是回覆,有father說明是回覆
  3. 分類表
  4. 文章表
  5. 標籤文章多對多中間表
  6. 標籤表
  7. 專題表

核心

邊緣模塊mvc

  1. 友鏈表
  2. 我的動態表
  3. 公告表
  4. 用戶表
  5. 留言表
  6. 陌生用戶表:根據ip自動創建,用於統計訪問人數和訪問量

在這裏插入圖片描述

三、訪問量統計

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]




四、項目截圖

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
演示地址:http://www.binnb.top
github地址: https://github.com/biningo/Biningo-Blog
歡迎star!app

相關文章
相關標籤/搜索