用python写个人技术博客网站_Django、Python搭建个人博客、个人网站

本文介绍如何使用Python的Django框架搭建个人博客网站,包括文章、用户、评论、表结构的设计以及访问量统计的方法。通过构建ArticleApp、UserApp、OtherApp和PersonalSpaceApp等模块来实现网站功能。

搭建个人博客

前言:

这篇文章说出了我,不止我,以及和我一样的刚入行的菜鸟的心声

写博客,建网站,不是为了炫耀啥知识,更不是为了消遣,而是总结自己的知识,完善结构体系,抒发自己的感受罢了

进入正题

1、目录结构

cba5ede54048477f59b2ed7875f15110.png

其中最主要的模块为ArticleApp有关文章的模块

然后就是UserApp 有关用户的模块,登录、注册、评论关联、留言等

其次就是OtherApp和PersonalSpaceApp包括个人动态、公告 、广播消息、友链 、等

其它模块本来想做完善点的,但是由于各种原因,看以后有没有时间吧,本来想建立一个分层的架构,类似mvc的,想想一个小博客网站,加上自己能力不足,就放弃了

2、表结构

先上图

核心模块

从左到右从上到下

用户表

评论表:faher_comment_id是自连接,代表是评论还是回复,有father说明是回复

分类表

文章表

标签文章多对多中间表

标签表

专题表

babfff808898e8394d34061e46a10cfa.png

边缘模块

友链表

个人动态表

公告表

用户表

留言表

陌生用户表:根据ip自动建立,用于统计访问人数和访问量

25f70df1a2f60137b867d05ea26a5755.png

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、项目截图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值