5.1.自定义403,404和500页面

(1)website/urls.py

from blog import views as blog_views

handler403 = blog_views.permission_denied
handler404 = blog_views.page_not_found
handler500 = blog_views.page_error

(2)views.py

def permission_denied(request):
''''''
return render(request, 'blog/403.html', locals()) def page_not_found(request):
''''''
return render(request, 'blog/404.html', locals()) def page_error(request):
''''''
return render(request, 'blog/500.html', locals())

还要改detail的view

(3)403,404,500页面

{% extends 'blog/base.html' %}
{% block title %}403{% endblock %} {% block content %}
<section class="container text-center" style="min-height:600px;">
<h1>403, Forbidden!</h1>
<p>你没有权限访问该页面</p>
<a class="btn btn-primary" href="{% url 'blog:blog_index' %}">返回主页</a>
</section>
{% endblock %}

blog/403.html

{% extends 'blog/base.html' %}
{% block title %}404{% endblock %} {% block content %}
<div class="container text-center" style="min-height:600px;">
<h1>404, Page not Found!</h1>
<h2>页面不存在!</h2>
<a class="btn btn-primary" href="{% url 'blog:blog_index' %}">返回主页</a>
</div>
{% endblock %}

404

{% extends 'blog/base.html' %}
{% block title %}500{% endblock %} {% block content %}
<section class="container text-center" style="min-height:600px;">
<h1>500, Page Error!</h1>
<p>服务器错误!</p>
<a class="btn btn-primary" href="{% url 'blog:blog_index' %}">返回主页</a>
</section>
{% endblock %}

500

生成环境下才有效:DEBUG = False

 

5.2.sitemap(站点地图)

(1)settings.py

INSTALLED_APPS = [
'django.contrib.sitemaps',
]

(2)web/urls.py

from django.contrib.sitemaps import GenericSitemap
from django.contrib.sitemaps.views import sitemap
from blog.models import Entry info_dict = {
'queryset': Entry.objects.all(),
'date_field': 'modifyed_time'
} url(r'^sitemap\.xml$', sitemap, {'sitemaps': {'blog': GenericSitemap(info_dict, priority=0.6)}},
name='django.contrib.sitemaps.views.sitemap'), #站点地图
from django.conf.urls import url,include
from django.contrib import admin
from django.conf import settings
from django.conf.urls.static import static
from blog.feed import LatestEntriesFeed
from blog import views as blog_views from django.contrib.sitemaps import GenericSitemap
from django.contrib.sitemaps.views import sitemap
from blog.models import Entry info_dict = {
'queryset': Entry.objects.all(),
'date_field': 'modifyed_time'
} urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^blog/',include('blog.urls') ),
url(r'^latest/feed/$', LatestEntriesFeed()), #RSS订阅
url(r'^sitemap\.xml$', sitemap, {'sitemaps': {'blog': GenericSitemap(info_dict, priority=0.6)}},
name='django.contrib.sitemaps.views.sitemap'), #站点地图
] + static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT ) #添加图片的url handler403 = blog_views.permission_denied
handler404 = blog_views.page_not_found
handler500 = blog_views.page_error

web/urls.py

(3)访问地址:http://127.0.0.1:8000/sitemap.xml

5.3.博客详情页目录

(1)right_site_bar.html

因为只有详情页右边才显示目录,主页不显示,在right_side_bar.html添加一个block

(2)detail.html

 <div class="col-md-3">
{% block toc %}
<div class="row">
<div class="widget">
<h3>博客目录</h3>
{{ entry.toc|safe }}
</div>
</div>
{% endblock %}
{% include 'blog/right_site_bar.html' %}
</div>

把之前在正文里面显示的目录删了,只要右侧显示目录就行了

5.4.返回顶部功能

(1)base.html

  <div id="back-to-top">
<i class="glyphicon glyphicon-arrow-up"></i>
</div>

(2)css代码

base.html引用

<link href="{% static 'blog/css/back-to-top.css' %}" rel="stylesheet">

blog/css/back-top-css.css代码

#back-to-top {
box-shadow: 5px 5px 5px #888888;
border-radius: 2px;
position: fixed;
bottom: 70px;
right: 70px;
color: whitesmoke;
background: #3ac57d;
width: 50px;
height: 50px;
text-align: center;
} #back-to-top i {
font-size: 30px;
margin: 10px auto;
}

(3)js代码

base.html

 <script>
$("#back-to-top").click(function () {
window.scrollTo(0,0);
});
</script>

Django+Bootstrap+Mysql 搭建个人博客(五)的更多相关文章

  1. Django+Bootstrap+Mysql 搭建个人博客(一)

    1.1.环境搭建 (1)虚拟环境 mkvirtualenv website pip install django==1.11.7 (2)创建项目和app:website和blog (3)设置中文set ...

  2. Django+Bootstrap+Mysql 搭建个人博客(四)

    4.1.博客分类 (1)blog_tags.py @register.simple_tag def get_categories(): return Category.objects.all() @r ...

  3. Django+Bootstrap+Mysql 搭建个人博客(三)

    3.1.分页功能 (1)views.py from django.core.paginator import Paginator,EmptyPage,PageNotAnInteger def make ...

  4. Django+Bootstrap+Mysql 搭建个人博客(二)

    2.1.博客首页设计 (1)settings.py MEDIA_ROOT = os.path.join(BASE_DIR,'media').replace("//","/ ...

  5. Django+Bootstrap+Mysql 搭建个人博客(六)

    6.1.comments插件 (1)安装 pip install django-contrib-comments (02)settings INSTALLED_APPS = [ 'django.con ...

  6. Django+Bootstrap+Mysql 搭建个人博客 (六)

    6.1.comments插件 (1)安装 pip install django-contrib-comments (02)settings INSTALLED_APPS = [ 'django.con ...

  7. Python Web开发:Django+BootStrap实现简单的博客项目

    创建blog的项目结构 关于如何创建一个Django项目,请查看[Python Web开发:使用Django框架创建HolleWorld项目] 创建blog的数据模型 创建一个文章类 所有开发都是数据 ...

  8. django入门--django-blog-zinnia搭建个人博客

    1.安装python 选择合适python2.7及以上版本安装https://www.python.org/downloads/ 2.建立虚拟环境 这不是必须的,但是建议使用,为每个项目单独引入依赖, ...

  9. Django两天搭建个人博客

    传送门:https://github.com/1417766861/django-blog(可直接运行,上面有步骤) 效果: 首页: 侧栏: 详情页面: 修改头像,资料,文章发布: 支持添加标签拖拽 ...

随机推荐

  1. vs2017更新出错:The entire Box execution exiting with result code: 0x0

    在将vs2017 15.7.4更新至15.9.5出现“The entire Box execution exiting with result code: 0x0”错误,也就是文件解压下载开始安装后, ...

  2. P1119 灾后重建 floyd

    题目背景 BB地区在地震过后,所有村庄都造成了一定的损毁,而这场地震却没对公路造成什么影响.但是在村庄重建好之前,所有与未重建完成的村庄的公路均无法通车.换句话说,只有连接着两个重建完成的村庄的公路才 ...

  3. 有意思的算法题:有10个文件,每个文件大概有10G,求里面最大的100个数;

    算法思路 1: 第一个阶段:对于单个10G文件而言 1. 初始化:先取100个数,构建最小堆: 开始比较: 2. 取一个数 A,与最小堆的根节点进行比较: 3. 如果 A > 最小堆根节点,则替 ...

  4. 20175305张天钰《java程序设计》第五周学习总结

    <java程序设计>第五周学习总结 接口与实现 知识小点: (1)用Arrays.sort方法对所有实现Comparable接口的对象进行排序 (2)接口体现了has-a关系,继承体现了i ...

  5. Codeforces 813C The Tag Game (BFS最短路)

    <题目链接> 题目大意:A.B两人在一颗树上,A在根节点1上,B在节点x上,现在他们轮流走,每次只能走一步,或者不走.A以尽可能靠近B的方式行走,B以尽可能远离A的方式走,B先开始走.问你 ...

  6. Emgucv使用中常用函数总结

    Emgucv常用函数总结: 读取图片 Mat SCr = new Mat(Form1.Path, Emgu.CV.CvEnum.LoadImageType.AnyColor); //根据路径创建指定的 ...

  7. BZOJ4668: 冷战 [并查集 按秩合并]

    BZOJ4668: 冷战 题意: 给定 n 个点的图.动态的往图中加边,并且询问某两个点最早什 么时候联通,强制在线. 还可以这样乱搞 并查集按秩合并的好处: 深度不会超过\(O(\log n)\) ...

  8. [Git]2018-10 解决git cmd中文乱码问题

    2018年10月12日 莫名其妙出现cmd下git log中文乱码问题,显示一堆<E4><A8>之类的乱码.git bash却一切正常. 怀疑是Windows系统升级出现的不兼 ...

  9. NOIP2017 国庆郑州集训知识梳理汇总

    第一天 基础算法&&数学 day1难度测试 如果要用一个词来形容上午的测试,那真是体无完肤.  成绩: 题目 成绩 评价 T1 50 一般 T2 10 大失所望 T3 0 差 基础算法 ...

  10. iptv

    # -*- coding: utf-8 -*- import datetime, time, json, re, os #from pwd import getpwnam #quality str_q ...