基于django的个人博客网站建立(七)

news/2024/5/13 5:51:27/文章来源:https://blog.csdn.net/weixin_34357887/article/details/93707803

基于django的个人博客网站建立(七)

前言

网站效果可点击这里访问


这次在原来的基础上添加或修改一些小功能

具体内容

1.代码高亮

在原来的blog-details.html页面添加下面的代码:


<link href="http://cdn.bootcss.com/highlight.js/9.12.0/styles/googlecode.min.css" rel="stylesheet"><script src="http://cdn.bootcss.com/highlight.js/8.0/highlight.min.js"></script><script>hljs.initHighlightingOnLoad();</script>

它会自动高亮由markdown转换成的代码部分,即


<pre><code></code></pre>

2.统计文章阅读数量

通过在用户浏览器上存储唯一id来保证识别用户

每篇文章每个浏览器只能够每天一次增加浏览数目

首先先为article表添加浏览数目字段


class Article(models.Model):title = models.CharField(max_length=128)markdownContent = models.TextField(default='')htmlContent = models.TextField()read_num = models.IntegerField(default=0)creationTime = models.DateTimeField(auto_now_add=True)

然后通过中间件的方式来为用户浏览器设置唯一id


from django.utils.deprecation import MiddlewareMixin
import uuidclass UserIdMiddleware(MiddlewareMixin):def process_request(self, request):try:uid = request.COOKIES['uid']except KeyError:uid = uuid.uuid4().hexrequest.uid = uiddef process_response(self, request, response):response.set_cookie('uid',request.uid,max_age=60*60*24*365*10,httponly=True)return response

并在setting中把中间件加入

接下来修改视图函数,为了方便将原来的视图函数改成了CBV


class Blog_details(View):def get(self,request,*args,**kwargs):all_type = models.ArticleType.objects.all()article_id = request.GET.get('article_id')if self.is_increase():models.Article.objects.filter(id=article_id).update(read_num=F('read_num') + 1)else:passarticle_obj = models.Article.objects.filter(id=article_id).first()return render(request, 'show/blog-details.html', {'article_obj': article_obj, 'all_type': all_type})def is_increase(self):increase = Falseuid = self.request.uidread_id =uid+self.request.path+str(date.today())if not cache.get(read_id):increase = Truecache.set(read_id,1,24*60*60)return increase

最后在页面一并将浏览数目显示即可

3.添加sitemap

在blog下建立sitemap.py


from django.contrib.sitemaps import Sitemap
from django.urls import reversefrom backend import modelsclass ArticleSitemap(Sitemap):changefreq = 'always'priority = 1.0protocol = 'http'def items(self):return models.Article.objects.all()def lastmod(self,obj):return obj.creationTimedef location(self,obj):return 'blog-details/?article_id='+str(obj.id)

在temlpates下编写sitemap.xml


<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">{% spaceless %}
{% for url in urlset %}
<url>
<loc>
{{ url.location }}
</loc>
<lastmod>{{ url.lastmod|date:"Y-m-d" }}</lastmod>
<changefreq>{{ url.changefreq }}</changefreq><priority>{{ url.priority }}</priority></url>{% endfor %}{% endspaceless %}
</urlset>

添加url


from django.contrib.sitemaps import views as sitemap_views
from blog.sitemap import ArticleSitemapurlpatterns = [path('admin/', admin.site.urls),path('',views.index),path('index/',views.index),path('backend/',include('backend.urls')),path('blog-details/',views.Blog_details.as_view(),name="blog-details"),path('saysomethingtome/', views.saysomethingtome),path('article_comment/',views.article_comment),path('category/',views.category),path('category/details/', views.category_details),path('record/', views.record),path('about/', views.about),path('sitemap.xml/',sitemap_views.sitemap,{'sitemaps':{'article':ArticleSitemap}})
]

之后访问127.0.0.1:8000/sitemap.xml 就可以得到

转载于:https://www.cnblogs.com/sfencs-hcy/p/10986169.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_734743.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

优酷网站服务器的带宽是多少,云服务器1M的带宽到底多大?90%的网站够用了

1M&#xff0c;作为云服务器最低的带宽配置&#xff0c;到底能承受多大的流量&#xff1f;在选配云服务器带宽的时候&#xff0c;看到带宽大小的时候&#xff0c;头疼病总是发作&#xff0c;带宽买小了&#xff0c;网站太卡&#xff0c;用户体验不好影响业务&#xff0c;带宽买…

使用码云或GitHub搭建简单的个人网站(补充hexo搭建博客)

视频链接&#xff1a;https://www.bilibili.com/video/av64294697 使用码云或GitHub搭建个人网站码云&#xff1a; 1、新建一个仓库 路径名会影响你的个人网站的网址&#xff08;自行修改&#xff09;&#xff0c;开源&#xff08;公开&#xff09;&#xff0c;其他默认…

bootstrap 分页_学习写个网站(5)Bootstrap学习2

吃了2天烧烤夜宵&#xff0c;还是得讲点自律。【正文】继续bootstrap&#xff0c;还是菜鸟教程。11. 分页就是还有种就是翻页&#xff0c;12. 标签class"label label-default">默认标签</span>label-primarylabel-success13. 警告就是那种可以取消的消息&am…

个人主页html代码_羡慕别人有自己的网站吗?这里有搭建免费个人主页的傻瓜式教程!...

想拥有一个免费的个人主页吗&#xff1f;在这里&#xff0c;你可以发布自己的博客、自由定制网站的主题&#xff0c;你可以拥有极好的创作体验&#xff0c;它可以成为你对外的一张“名片”&#xff0c;体现你的品味和兴趣&#xff0c;还有更重要的&#xff0c;它是免费的、可控…

springboot获取不到请求头_基于springBoot的国际化网站处理

为了在不同得语言环境下使用不同的语言提示&#xff0c;所以一般会在网站引入网站国际化处理。下面讲解一下springboot对这国际化的支持1.springboot进行国际化处理的类public class MessageSourceAutoConfiguration {Beanpublic MessageSource messageSource(MessageSourcePro…

大型游戏网站源码_自学Python才两天,就成功编写俄罗斯方块游戏,这难道不是天才?...

人们常说&#xff0c;python不适合做游戏&#xff0c;但我偏爱玩游戏&#xff0c;做不了大的&#xff0c;做个小的也行啊。于是&#xff0c;我在自己毫无基础的条件下&#xff0c;用两天时间学python基础理论&#xff0c;再用已有的俄罗斯方块游戏源码和源文件&#xff0c;在我…

如何使用Zend Framework、Smarty、Ajax创建一流的网站

如何使用Zend Framework、Smarty、Ajax创建一流的网站“读完本书后&#xff0c;我发现自己对Web开发和MVC模式的理解都已经今非昔比……强烈推荐此书&#xff01;”——Amazon.com“……一部极富启发性的PHP实战指导书&#xff0c;业界专家充分演示了如何使用Zend Framework、S…

seo查询工具源码_网站SEO必备的10款辅助工具

1、百度站长平台(免费)百度站长平台是全球最大的中文网站管理员官方平台。提供SEO优化建议、站长工具、权威数据算法公布。2、百度推广(免费、关键词挖掘)百度推广是百度国内首创的一种按效果付费的网络推广方式&#xff0c;重点是工具里面有关键词挖掘工具&#xff0c;竞价人员…

围观:8个网站被黑,又一次免费的安全检查,‘网络安全’问题多多,让人担忧啊。...

据相关人士爆料&#xff0c;2009年11月7日下午2点左右一下网站被安全检查。图一、成都大学官网 http://www.cdu.edu.cn/404.html图二、大学生招聘网 http://bbs.hiall.com.cn/404.html 图三、中国旅游网 http://cdms.yahtour.com/404.html图四、IDC …

fluke ti32英文使用说明_烟台高端英文网站制作-鸿强传媒

网站优化公司,很多做网站优化的企业都遇到了这样的一个问题,那就是企业网站的流量很少以及在搜索引擎上的排名也比较靠后,而网站跳出率反而越来越高.网站关键词网站优化公司告诉你们这是因为网站的打开速度很慢造成的,要知道网站打开速度不理想的话,对于企业网站的网站优化是有…

开源软件网站

为什么80%的码农都做不了架构师&#xff1f;>>> SourceForge.net 以下是编程技术相关网站 http://special.e800.com.cn/080504/ 深入解析Java网络编程 http://www.linuxpk.com/type216_1.html Linux-网络编程 http://violasogni.javaeye.com/blog/548694 …

Mysql+Nginx+Apache2+PHP网站环境搭建(编译安装)

1.Centos编译环境搭建&#xff1a;yum -y install yum-fastestmirror使用fastestmirror插件给yum加速 yum check-update安装一些必要的软件&#xff1a; yum -y install gcc gcc-c screen autoconf automake libjpeg libjpeg-devel libpng libpng-devel freetype freetype-dev…

ubuntu系统服务器查看在运行,ubuntu如何查看系统版本信息_网站服务器运行维护...

linux不支持中文怎么办_网站服务器运行维护linux不支持中文的解决办法&#xff1a;首先安装中文语言包&#xff1b;然后编辑“/etc/profile”配置文件&#xff0c;并添加“export LANG"zh_CN.UTF-8"”&#xff1b;最后通过命令“# . /etc/profile”重新载入即可。一、…

BSU网站加速技术

BSU网站加速技术 BSU&#xff08;BrowserSpeedUp&#xff09;网站加速技术&#xff0c;是博看文思针对当前国内传统网站制作的弊端&#xff0c;从前端开发角度出发&#xff0c;提出的一门提高网页打开速度的技术。通过大量实例证明&#xff1a;使用BSU网站加速技术制作的网站比…

网站添加“分享按钮”

站长基本上都会给自己网站添加“分享按钮” 1、http://www.bshare.cn/ 和 2、http://www.jiathis.com/ 3、百度分享&#xff1a;&#xff08;推荐&#xff09; http://share.baidu.com/ 注意它的第二条&#xff1a; 使用了百度分享的网页可以更快地被百度爬虫发现&#xff0c;从…

Windows server2012建站环境配置

看的https://www.jb51.net/article/59280.htm的教程&#xff08;以下简称教程&#xff09;&#xff0c;如法炮制&#xff0c;记录下踩过的坑&#xff1a; &#xff08;1&#xff09;一定要勾选CGI&#xff0c;不然后面添加模块FastCgiModule的步骤会无法进行&#xff08;找不到…

11条理由告诉你,为什么你的网站不卖座

http://news.cnblogs.com/n/507668/一个精心设计的网站自然能够促进公司业务的增长和品牌的加强。 尼尔森的一项研究发现&#xff0c;用户在一个网站上的平均用时是 10-20 秒。在开始的浏览时&#xff0c;访客在网站上发现值得进一步查看的内容才会停留更长的时间。对于企业而言…

一步一步SharePoint 2007之十七:解决实现Form认证后无法再用SharePoint Designer编辑网站的问题...

摘要  前面的文章中&#xff0c;我曾提到&#xff0c;Form认证目前还有缺陷&#xff0c;就是实现Form认证后&#xff0c;就不可以用SharePoint Designer编辑网站了。这点真让我觉得寒心&#xff0c;为了解决这个问题&#xff0c;为了让大家安心学习实现Form认证的技术&#x…

bootstrap+flask+mysql实现网站查询

之前那篇文章是flaskredis的&#xff0c;如果用flaskmysql怎么实现呢&#xff1f;创建数据库&#xff1a;CREATE DATABASE web12306 DEFAULT CHARACTER SET utf8;创建表&#xff1a;CREATE TABLE web12306 (user_email varchar(100) NOT NULL DEFAULT ,user_pass varchar(100)…

网站集成QQ登录功能

最近在做一个项目时&#xff0c;客户要求网站能够集成QQ登录的功能&#xff0c;以前没做过这方面的开发&#xff0c;于是去QQ的开放平台官网研究了一下相关资料&#xff0c;经过自己的艰苦探索&#xff0c;终于实现了集成QQ登录的功能&#xff0c;现在把相关的开发经验总结一下…