目录
- BBS
- media配置
- 图片防盗链
- 个人站点页搭建
- 侧边栏展示
- 侧边栏筛选功能:
- 侧边栏inclusion_tag制作
- 怎么拷贝博客
- 点赞点踩前端样式及数据准备
- 点赞点踩功能实现
- 评论前端样式搭建
- 根评论功能实现
BBS
media配置
实现:
文章多的时要考虑分页处理
导入分页器代码
随便找一个文件放或者自创一个
utils
修改参数,让一页展示多条 我默认十条(10)
定义home页面跳转到前端:
来到home.html页面搭建中 找到字数为8的,去复制相关内容
渲染样式,调格式,找相应格式复制进行修改
修改复制代码:
效果:
优化:
把标题放上面:
效果:
空开一点距离:
效果:
文章表签 《a》标签 不知道写什么就#号暂时顶一下
实现:
效果:
让用户名可以点击、调大用户名:基于上面代码优化
效果:
分页器添加:
效果:
分页器据中
效果:
用户头像展示 media配置
上传文件图片存的路径 media配置: 执行注册成功后,添加图片 自动保存创建的media文件夹中
效果:
访问图片,访问不到:
图片防盗链
暴露后端任意文件夹的资源 需手动加
模块导入:
配置:urls.py 固定写法,把图片信息暴露出去 另一种放不能暴露敏感词汇不然会暴露自己的信息,别人能轻易获取
然后访问图片,就可以访问了
添加图片:只有手动在用户头像前加一个 /media/
效果:
个人站点:
如何实现:
配置:
定义相关内容:
获取404页面,相关内容复制到 error.html中
error.py 代码:
效果:
图片防盗链
先判断当前发送请求的页面url是否属于本网站的
如果是那么正常返回图片如果不是直接禁止
如何判断当前请求的页面url
请求头里面有一个
Referer: http://127.0.0.1:8000/skadjklsajdklsa/
如何解决该问题
1.利用爬虫直接将所有资源下载到本地
2.修改请求头参数
列如博客园就拿到这个网址到我的网址中进行比对,是否给你开通这个图片的访问,没有就访问不了
个人站点页搭建
日期归档:
个人站点
侧边栏展示
id title create_time month
1 111 2018-11-23 2018-11
2 222 2019-11-01 2019-11
3 333 2020-8-11 2020-8
4 444 2019-11-30 2019-11
from django.db.models.functions import TruncMonth
-官方提供
from django.db.models.functions import TruncMonth
Article.objects
.annotate(month=TruncMonth('timestamp')) # Truncate to month and add to select list
.values('month') # Group By month
.annotate(c=Count('id')) # Select the count of the grouping
.values('month', 'c') # (might be redundant, haven't tested) select month and count
之前一点小问题 换一下 在views.py 和 home.html中
定义 views.py
前端:error.py 从home.html中内容直接复制到site.html中进行修改
然后执行效果:因为复制过来修改的,所以测试都应该是对的
site.html 个人站点页 把home页面随便添加一下图标
实现:
site.html
效果:
创一个css文件夹 更换页面颜色
添加样式 site.py
效果
侧边栏展示
先到site.html中修改相应数据
1.拿到当前用户的分类及分类下的文章数
导入:views.py
效果:文章下的分类数
site.html
效果:
2.当前用户的标签和文章数
效果:
site.py
效果:
3.按文章的年月分组
导入模块:views.py
数据库修改年月:
效果:2019 8 月 jason有两篇文章 1是默认值不看
site.py
效果:
我们写日期报错可修改两个参数:settings中修改
侧边栏筛选功能:
urls.py
推到思路
url匹配优化 合并
views.py
进行业务逻辑判断:
效果:
site.html
先到添加相应信息views.py 在返回前端做相关内容
效果:
实现多张文章下 显示相关内容
效果:
侧边栏inclusion_tag制作
文章详情页:urls.py
定义 views.py
前端 :article_detail.html
site.py
views.py
创建一个文件夹
前端left_menu.html
后端
后端base.py
前端site.py
urls.py
前端home.py
效果:
怎么拷贝博客
检查
点赞点踩前端样式及数据准备
点站点踩
定义:
前端:
定义处 后端:
Json转换
点赞点踩功能实现
views.py
1.判断当前用户是否登录:
2.当前文章是不是当前用户写的
3.当前用户是否已经给当前文章点过缵或踩
了
4.操作数据库
操作两张表
数据库优化字段
效果:
错误判断后:
前端:
效果:
评论前端样式搭建
评论前端样式代码:
前端代码:
添加登陆注册
效果:
根评论功能实现
评论内容后端发送:
文章评论:
views.py
前端:
到后端:
执行效果
前端:
views.py
评论渲染
到前端渲染一下:
效果:
添加一个回复按钮
临时渲染:
效果: