Django作为一款成熟的Python Web开发框架提供了丰富的内置功能,如ORM(对象关系映射)、Admin管理界面、URL分发、模板系统、表单处理等,使得开发者能够快速搭建Web应用,大幅提高了开发效率。以前写过一篇博文《Django+Vue快速实现博客网站》介绍了通过Djang+Vue快速实现博客网站,django+vue作为个人博客来说稍显复杂,部署起来也比较麻烦,Vue的单页面架构也不利于SEO,更简单的解决方案其实还是用django的模板系统快速构建web应用,对于个人博客来说部署和运维更加简单也利于SEO。下面介绍如何快速的通过django模板系统快速实现个人博客。
一、工程目录组织结构
二、模型及管理实现
模型及管理端的实现沿用《Django+Vue快速实现博客网站》文章中的实现,用Django搭建很快很简单。
模型很简单,根据博客要显示的内容包括有‘文章分类’、‘文章标签’、‘博客文章’、‘站点信息’、‘社交信息’、‘聚焦’,模型定义分别如下: 这里要说明的是因为博客文章内容准备用markdown编写,所以引入了mdeditor from mdeditor.fields import MDTextField
内容字段content=MDTextField(verbose_name='内容')
模型代码示例如下:
1、模型
1 | from django.db import models |
2、admin管理
实际上只要把模型注册到admin就可以了
1 | from django.contrib import admin |
三、博客展现实现
博客前端展现用django的模板技术实现。在网上找了一个基于Bootstrap v4.3.1的小清新风格HTML博客模板,https://gitee.com/yinqi/Light-Year-Blog 这个博客模只有三个页面,首页,详细页和About页面,样式和js都不多,比较简单。将html模板放入到templates的blog目录,为了便于维护将一些公共部分抽到了base.html,index.html和post.html 通过{ % extends 'blog/base.html' % }
进行应用
1、视图实现
1 | from django.http import HttpResponse, Http404 |
2、模板实现
静态文件如css、js等放到static的blog目录,html模板文件放到templates的blog目录
在setting.py文件中配置 STATIC_URL = 'static/'
,在html模板文件中通过{ % load static % }
将静态文件的地址引用进来
将公共部分抽取出来形成base.html
1 | { % load static % } |
博客首页/列表页
通过{ % extends 'blog/base.html' % }
将公共部门引入进来后index.html的内容就简洁了很多
index.html
1 |
|
博客详情页post.html
1 | { % extends 'blog/base.html' % } |
四、部署及效果
在部署之前执行python manage.py collectstatic
将admin等其他模块用到的静态文件统一输出到static的目录。
通过 python manage.py runserver
启动应用就可以看到效果。
实际效果见 http://iblog.ishareread.com/
博客首页
博客详情页
五、源代码
所有源代码及说明见 https://gitee.com/xiejava/ishareblog
博客地址:http://xiejava.ishareread.com/
关注:微信公众号,一起学习成长!