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(可直接运行,上面有步骤) 效果: 首页: 侧栏: 详情页面: 修改头像,资料,文章发布: 支持添加标签拖拽 ...
随机推荐
- mongDB数据库 小白学习
一 安装配置 1.配置文件mongod.cfg (路径:D:\data\config\mongod.cfg) 如下: systemLog: destination: file path: D:\da ...
- 七、OpenStack—dashboard组件安装
1.安装包# yum install openstack-dashboard2.编辑 /etc/openstack-dashboard/local_settings 文件 需要更改的几处内容如下: ) ...
- C语言柔性数组讲解
#include<stdio.h> typedef struct _SoftArray{ int len; int array[]; }SoftArray; int main() { ; ...
- Linux正则表达式练习
练习一 1.生成30位的随机口令 [root@centos7 ~]#cat /dev/urandom | tr -dc "[:alnum:]" | head -c30 RJL5qc ...
- 最短路径问题—Dijkstra算法
算法: import java.util.*; public class Main6 { public static int N = 1050; public static final int INF ...
- CSS-默认padding 和 margin
一.h1~h6标签:有默认margin(top,bottom且相同)值,没有默认padding值. 在chrome中:16,15,14,16,17,19; 在firefox中:16,15,14,16, ...
- python批量提取eml附件
从批量eml文件中提取附件,使用方式如下 代码如下 import email import os import sys #获取eml附件信息 def Get_Annex_Message(FilePat ...
- Hadoop-HA机制工作原理
一.Hadoop 系统架构 1.1 Hadoop1.x和Hadoop2.x 架构 在介绍HA之前,我们先来看下Hadoop的系统架构,这对于理解HA是至关重要的.Hadoop 1.x之前,其官方架构如 ...
- html+css手机端自动适应
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scal ...
- Ubuntu ARM更改为国内源
关键词:ubuntu arm ubuntu-ports 国内源 镜像 阿里源 apt apt-get install update 0%working 速度慢 rk3399 开发板 ...