博客系统之-总结+README.md
README,全套代码
BBS+ BLOG系统(仿博客园)
注意事项:
1、相关文件说明:
tree.txt 该项目的所有文件 requirements.txt 依赖包文件 img-floder 项目效果图 tables 表关系
2、环境安装:
请您在python官网下载python3.6版本进行安装
3、当前程序的所有依赖包及其精确版本号。
请您打开CMD控制台,到依赖包同目录下,执行:pip install -r requirements.txt
4、测试用例文档给您提供了更好的测试思路,您可以通过测试用例达到更好的测试效果
效果图
二、项目流程
1 搞清楚需求(产品经理) (1) 基于用户认证组件和AJAX实现登录验证(图片验证码) (2) 基于forms组件和ajax实现注册功能 (3) 设计系统首页 (文章列表渲染) (4) 设计个人站点页面 (5) 文章详情页 (6) 实现文章点赞功能 (7) 实现文章的评论 -------文章的评论 -------评论的评论 (8) 后台管理页面 --- 富文本编辑框 --- 防止xss攻击 2 设计表结构 3 按着每一个功能进行开发 4 功能测试 5 项目部署上线
三、功能实现
1.login_reg_404模块
1) 主页 / 2) 注册 /reg/ 3) 登录 /login/ /get_validCode/ # 验证码 4) 注销 /logout/ 5) 404页面 not_found.html
2.个人站点,文章模块
1) 个人站点页面 /alex/ 2) 文章详情页 /alex/articles/4 /digg # 点赞 /comment # 评论 /get_comment_tree # 评论树展示 3)media开放目录 /media
3.后台管理
/cn_backend # 主页 /cn_backend/add_article/ # 添加文章 /cn_backend/edit_article/4 # 编辑文章 /delete # 删除
四、所用技术概述
1、验证用户是否登录:用户认证组件
实质:session会话跟踪技术 from django.contrib import auth 通过中间件auth_middleware.py,采用白名单,对url进行控制,替代装饰器@login_requierd,否则每一个函数都有要加装饰器。 from django.utils.deprecation import MiddlewareMixin
2、验证字段:表单forms组件
对每个数据库中的字段进行校验,返回error from django import forms
3、自定义分页器
分页器pagination.py 解耦 from blog.utils.pagination import MyPaginator # 分页器
4、记录日志log
settings配置文件,终端打印sql语句 mylog.py 日志文件,解耦,终端打印并在log文件记录用户操作 import logging
5、模板继承
{% extends 'base.html' %}{% block site-header %}{% endblock %}
6、ORM表关系
一对一(user blog)
一对多(user article)
多对多(article tag)
7、注意点:
1) 时区: settings.py配置 # TIME_ZONE = 'UTC' TIME_ZONE = 'Asia/Shanghai' USE_TZ = False 2) 静态文件目录 STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static') ]
8、连接mysql数据库
settings配置 # 连接mysql数据库 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'cnblog', # 要连接的数据库,连接前需要创建好 'USER': 'root', # 连接数据库的用户名 'PASSWORD': 'root', # 连接数据库的密码 'HOST': '127.0.0.1', # 连接主机,默认本级 'PORT': 3306, # 端口 默认3306 } }
9、评论后发送邮件
settings文件配置 # 发送邮件 EMAIL_USE_SSL = True # EMIAL_HOST = 'smtp.exmail.qq.com' # 如果是163 改成smtp.163.com EMAIL_HOST = 'smtp.qq.com' # 如果是 163 改成 smtp.163.com EMAIL_PORT = 465 EMAIL_HOST_USER = '719633333@qq.com' # 账号 EMAIL_HOST_PASSWORD = 'or333333ndzubdie' # qq邮箱的授权码而不是密码 DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
views视图
from django.core.mail import send_mail # 发送邮件
# 多进程发送邮件
t = threading.Thread(target=send_mail, args=("你的文章【%s】新增了一条评论内容" % article_obj.title, content, settings.EMAIL_HOST_USER, [request.user.email], )) t.start()
10、验证码
PIL模块生成验证码 from PIL import Image, ImageDraw, ImageFont
11、自定义tag标签
from django import template register = template.Library() @register.inclusion_tag("blog/classification.html") def get_classification_style(username):
12、数据库事务操作
from django.db import transaction # 事务操作
13、富文本编辑框
KindEditor
14、防止xss攻击
from bs4 import BeautifulSoup
五、鸣谢
感谢在开发过程中的老师和同学们的帮助。
梦想随心,天地随行