Django+Bootstrap+Mysql 搭建个人博客(五)
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 搭建个人博客(五)的更多相关文章
- Django+Bootstrap+Mysql 搭建个人博客(一)
		1.1.环境搭建 (1)虚拟环境 mkvirtualenv website pip install django==1.11.7 (2)创建项目和app:website和blog (3)设置中文set ... 
- Django+Bootstrap+Mysql 搭建个人博客(四)
		4.1.博客分类 (1)blog_tags.py @register.simple_tag def get_categories(): return Category.objects.all() @r ... 
- Django+Bootstrap+Mysql 搭建个人博客(三)
		3.1.分页功能 (1)views.py from django.core.paginator import Paginator,EmptyPage,PageNotAnInteger def make ... 
- Django+Bootstrap+Mysql 搭建个人博客(二)
		2.1.博客首页设计 (1)settings.py MEDIA_ROOT = os.path.join(BASE_DIR,'media').replace("//","/ ... 
- Django+Bootstrap+Mysql 搭建个人博客(六)
		6.1.comments插件 (1)安装 pip install django-contrib-comments (02)settings INSTALLED_APPS = [ 'django.con ... 
- Django+Bootstrap+Mysql 搭建个人博客 (六)
		6.1.comments插件 (1)安装 pip install django-contrib-comments (02)settings INSTALLED_APPS = [ 'django.con ... 
- Python Web开发:Django+BootStrap实现简单的博客项目
		创建blog的项目结构 关于如何创建一个Django项目,请查看[Python Web开发:使用Django框架创建HolleWorld项目] 创建blog的数据模型 创建一个文章类 所有开发都是数据 ... 
- django入门--django-blog-zinnia搭建个人博客
		1.安装python 选择合适python2.7及以上版本安装https://www.python.org/downloads/ 2.建立虚拟环境 这不是必须的,但是建议使用,为每个项目单独引入依赖, ... 
- Django两天搭建个人博客
		传送门:https://github.com/1417766861/django-blog(可直接运行,上面有步骤) 效果: 首页: 侧栏: 详情页面: 修改头像,资料,文章发布: 支持添加标签拖拽 ... 
随机推荐
- vmware安装VMTools  , VirtualBox "安装增强功能"
			https://www.vmware.com/support/ws45/doc/new_guest_tools_ws.html 直接参考官方文档,中文没找到啥有用的资料 https://www.cnb ... 
- 研究比对搞定博客 canvas-nest.js
			经过比对网站源码,发现大的差异,复制代码添加成功. 参考:https://www.cnblogs.com/kexing/p/7264767.html 申请js权限 编辑 具体编辑请自行实验, 附上 ... 
- 微信小程序 + nodeJs(loopback) 实现支付
			实现小程序的支付,首先需要去微信官网先了解一下微信小程序支付相关接口文档:https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter= ... 
- css实现图片等比例缩放
			<div class="box"> <img src="01.jpg"/> </div> .box{ } //只要给图片设置 ... 
- Spark环境搭建(七)-----------spark的Local和standalone模式启动
			spark的启动方式有两种,一种单机模式(Local),另一种是多机器的集群模式(Standalone) Standalone 搭建: 准备:hadoop001,hadoop002两台安装spark的 ... 
- [CF893F] Subtree Minimum Query
			Description: 给定一棵树,每次询问某点子树中到其不超过k的所有点的最小点权 强制在线 Hint: \(n,m\le 10^5\) Solution: 看到题目第一反应是以深度为下标,dfs ... 
- 13-事务&数据库连接池&DBUtiles
			事务&数据库连接池&DBUtils 事务 Transaction 其实指的一组操作,里面包含许多个单一的逻辑.只要有一个逻辑没有执行成功,那么都算失败. 所有的数据都回归到最初的状态 ... 
- H5_ 多媒体video,autio使用示例
			<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ... 
- 我用linux系统的采坑记
			我的新Ubuntu18,也没安装什么,但是在使用过程中总是莫名其妙的卡死,真的很烦.有时候cpu使用率接近100%,有时候貌似是内存不够了,但是我明明是8GB,这些小问题搞得我很恼火.这样的机器真的不 ... 
- 用Group by分组后,取每组的前3条记录,怎么取?
			使用子查询进行查询 SELECT * FROM home_content a WHERE ( SELECT count(id) FROM home_content WHERE class_link = ... 
