BBS项目图片解析

BBS

media配置

实现:

1752710-20200116162104316-1271166270.png

1752710-20200116085820731-967456936.png

文章多的时要考虑分页处理

导入分页器代码

1752710-20200116162526446-132353774.png

随便找一个文件放或者自创一个

1752710-20200116162819664-1910039605.png

utils

1752710-20200116163015815-2029876110.png

修改参数,让一页展示多条 我默认十条(10)

1752710-20200116163357542-1616281528.png

定义home页面跳转到前端:

1752710-20200116163527022-1434532574.png

来到home.html页面搭建中 找到字数为8的,去复制相关内容

1752710-20200116163802820-925020203.png

渲染样式,调格式,找相应格式复制进行修改

1752710-20200116164158663-1453997189.png

修改复制代码:

1752710-20200116164406897-683228356.png

效果:

优化:

把标题放上面:

效果:

1752710-20200116164902679-147532526.png

空开一点距离:

1752710-20200116165208751-1251615347.png

效果:

1752710-20200116165251038-1362511529.png

文章表签 《a》标签 不知道写什么就#号暂时顶一下

1752710-20200116165511221-377910174.png

实现:

1752710-20200116170144718-913228678.png

效果:

1752710-20200116170238031-1799748009.png

让用户名可以点击、调大用户名:基于上面代码优化

1752710-20200116180012864-983928306.png

效果:

1752710-20200116175215092-1797557303.png

分页器添加:

1752710-20200116175047007-1991532129.png

效果:

1752710-20200116175326759-1687598270.png

分页器据中

1752710-20200116175844826-1852462713.png

效果:

1752710-20200116175654353-986433499.png

用户头像展示 media配置

1752710-20200116180717710-1923514207.png

上传文件图片存的路径 media配置: 执行注册成功后,添加图片 自动保存创建的media文件夹中

1752710-20200116091745288-345108515.png

效果:

1752710-20200116181227539-921206866.png

访问图片,访问不到:

1752710-20200116181712272-176665094.png

图片防盗链

暴露后端任意文件夹的资源 需手动加

模块导入:

1752710-20200116092535923-590095000.png

1752710-20200116182142299-1685855409.png

配置:urls.py 固定写法,把图片信息暴露出去 另一种放不能暴露敏感词汇不然会暴露自己的信息,别人能轻易获取1752710-20200116092108559-1852281185.png

然后访问图片,就可以访问了

1752710-20200116181617664-1697976221.png

添加图片:只有手动在用户头像前加一个 /media/

1752710-20200116182523978-1184030547.png

效果:

1752710-20200116092321642-2121446632.png

个人站点:

如何实现:

1752710-20200116183239936-1344723874.png

1752710-20200116183058387-420794687.png

配置:

1752710-20200116183404114-763734668.png

定义相关内容:

1752710-20200116093020726-684026715.png

获取404页面,相关内容复制到 error.html中

1752710-20200116183642772-47308715.png

1752710-20200116183724509-187212053.png

error.py 代码:

1752710-20200116184259211-354621215.png

效果:

图片防盗链

先判断当前发送请求的页面url是否属于本网站的
如果是那么正常返回图片如果不是直接禁止

如何判断当前请求的页面url

请求头里面有一个
    Referer: http://127.0.0.1:8000/skadjklsajdklsa/ 
如何解决该问题
1.利用爬虫直接将所有资源下载到本地
2.修改请求头参数

列如博客园就拿到这个网址到我的网址中进行比对,是否给你开通这个图片的访问,没有就访问不了

1752710-20200116184722214-973032477.png

个人站点页搭建

日期归档:

    个人站点
    
    侧边栏展示
    
        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中

1752710-20200116185901111-1194045083.png

1752710-20200116190114028-1241231.png

定义 views.py

1752710-20200116191003376-294292041.png

前端:error.py 从home.html中内容直接复制到site.html中进行修改

1752710-20200116190934197-2082430991.png

然后执行效果:因为复制过来修改的,所以测试都应该是对的

1752710-20200116190758051-177088381.png

site.html 个人站点页 把home页面随便添加一下图标

1752710-20200116191911156-53281881.png

1752710-20200116192139591-1838237240.png

实现:

1752710-20200116192329003-1388385277.png

site.html

1752710-20200116192524083-1405071460.png

效果:

1752710-20200116192646665-469522581.png

创一个css文件夹 更换页面颜色

1752710-20200116100848198-36768457.png

添加样式 site.py
1752710-20200116100926522-956212941.png
效果

1752710-20200116101230621-1483908865.png

侧边栏展示

先到site.html中修改相应数据

1752710-20200116193420485-1930138036.png

1.拿到当前用户的分类及分类下的文章数

导入:views.py

1752710-20200116193831695-1404317204.png

1752710-20200116193756359-1392392142.png
效果:文章下的分类数
1752710-20200116101654034-1485255457.png

site.html

1752710-20200116101949233-889400867.png

效果:
1752710-20200116101923594-1519640441.png

2.当前用户的标签和文章数

1752710-20200116194344166-364151193.png

效果:

1752710-20200116194420228-1127170716.png

site.py

1752710-20200116194223458-1715759773.png

效果:

1752710-20200116102341164-1343610971.png

3.按文章的年月分组

导入模块:views.py

1752710-20200116103005975-404141566.png

1752710-20200116103252243-1254034011.png
数据库修改年月:
1752710-20200116103352958-1625157967.png
效果:2019 8 月 jason有两篇文章 1是默认值不看
1752710-20200116103447859-560675356.png

site.py

1752710-20200116103620022-1135243061.png
效果:
1752710-20200116103638438-2089352089.png

我们写日期报错可修改两个参数:settings中修改
1752710-20200116103854952-2079804495.png

侧边栏筛选功能:

urls.py
推到思路
1752710-20200116110032359-1156270354.png

url匹配优化 合并
1752710-20200116110302569-1047973260.png

views.py
1752710-20200116110442048-1570533829.png

进行业务逻辑判断:

1752710-20200116111308255-388309329.png

效果:
1752710-20200116111427833-687790288.png

site.html

先到添加相应信息views.py 在返回前端做相关内容

1752710-20200116112041562-1274828642.png

1752710-20200116200050832-191100728.png

效果:

1752710-20200116200809604-1248607594.png

实现多张文章下 显示相关内容

1752710-20200116111706810-255940284.png
效果:

1752710-20200116111756479-612133551.png

侧边栏inclusion_tag制作

文章详情页:urls.py

1752710-20200116111936696-2032150713.png

定义 views.py

前端 :article_detail.html

site.py

1752710-20200116201846962-596326360.png

views.py

1752710-20200116112835224-2101161935.png

创建一个文件夹

1752710-20200116203945674-1009756895.png

1752710-20200116204812664-1145170438.png

前端left_menu.html
1752710-20200116204517815-60606682.png

后端

1752710-20200116205000587-1478642606.png

后端base.py

1752710-20200116113905275-1532633501.png

前端site.py
1752710-20200116202723633-1864628266.png

urls.py
1752710-20200116203151560-558835167.png

前端home.py
1752710-20200116203030953-730464642.png

效果:

1752710-20200116205441472-1569606356.png

怎么拷贝博客

检查

1752710-20200116120451640-1669523530.png

1752710-20200116120510036-1813484225.png

点赞点踩前端样式及数据准备

点站点踩

1752710-20200116143937196-64519263.png
定义:
1752710-20200116144357140-1237985302.png

前端:
1752710-20200116144322369-251928765.png
定义处 后端:
1752710-20200116144446007-1232974283.png
Json转换
1752710-20200116144638056-959266411.png

点赞点踩功能实现

views.py
1752710-20200116144921750-1295531346.png
1.判断当前用户是否登录:

2.当前文章是不是当前用户写的

3.当前用户是否已经给当前文章点过缵或踩

4.操作数据库

操作两张表

数据库优化字段

1752710-20200116145648924-589889260.png
效果:
1752710-20200116145715106-1849990189.png
错误判断后:

1752710-20200116210406072-1913560871.png

前端:
1752710-20200116150721268-1124891949.png
效果:
1752710-20200116150836559-1842438501.png

评论前端样式搭建

评论前端样式代码:

1752710-20200116151331890-1739873229.png
前端代码:
1752710-20200116151502564-190144130.png

添加登陆注册
1752710-20200116151750480-1053499555.png
效果:
1752710-20200116151830428-648218849.png

根评论功能实现

评论内容后端发送:

文章评论:
1752710-20200116154002740-701909821.png

views.py
1752710-20200116154312957-712861019.png

前端:
1752710-20200116154301649-947012024.png
到后端:
1752710-20200116154723583-1064441306.png
执行效果
1752710-20200116154942373-1173201536.png
前端:
1752710-20200116155056417-57595949.png
views.py
1752710-20200116155137480-485433333.png
评论渲染
到前端渲染一下:
1752710-20200116155626936-1572812225.png
效果:
1752710-20200116155657448-1126762328.png

添加一个回复按钮

1752710-20200116155845572-1236322900.png
1752710-20200116155932823-762626712.png

临时渲染:

效果:
1752710-20200116160633242-730094124.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值