>
Django搭建个人博客 | 博客项目
2019-06-15
•
1552 阅读
•
2 评论
本博客前端使用Bootstrap框架设计,后端使用Python-3.7,基于Django-2.1搭建,采用服务器linux(Centos7),通过 Nginx + Gunicorn 方式部署。
功能介绍
- Django 自带的后台管理系统,方便对于文章、用户及其他动态内容的管理
- 用户认证系统,使用allauth插件管理用户登录与注册,支持Github 等第三方认证
- 文章分类、标签、浏览量统计以及规范的 SEO 设置
- 文章评论系统,支持 markdown 语法,二级评论结构和回复功能
- RSS 博客订阅功能及规范的 Sitemap 网站地图
- 基于中间件通过缓存统计在线人数
- 缓存系统,遵循缓存原则,加速网站打开速度
- RESTful API 风格的 API 接口
项目源码
项目目录
首先安利一个快速生成如下目录结构的插件 mddir,使用方式也很简单: 首先通过npm安装
>> npm install mddir -g #-g局部安装
cd 到你想生成目录的工程结构,直接运行mddir命令
>> cd X:\myblog >> mddir
打开工程根目录下出现的名字为directoryList.md的文件,其中就是我们的文件夹目录结构。
|-- Myblog #项目工程 |-- db.sqlite3 |-- manage.py #命令行工具,与该 Django 项目进行交互。 |-- Apps #博客APP功能归纳文件夹 | |-- Comment #博客评论系统APP | | |-- admin.py | | |-- apps.py | | |-- models.py | | |-- tests.py | | |-- urls.py | | |-- views.py | | |-- __init__.py | | |-- migrations | | |-- templatetags | | | |-- comment_tags.py | | | |-- __init__.py | | | |-- __pycache__ | | |-- __pycache__ | |-- Myaccount #用户信息APP | | |-- admin.py | | |-- apps.py | | |-- forms.py | | |-- models.py | | |-- tests.py | | |-- urls.py | | |-- views.py | | |-- __init__.py | | |-- migrations | | |-- templatetags | | | |-- User_tags.py | | | |-- __init__.py | | | |-- __pycache__ | | |-- __pycache__ | |-- Storm #博客系统app | | |-- admin.py #Django提供的后台管理 | | |-- apps.py #配置当前app | | |-- feeds.py #扩展博客系统的RSS订阅 | | |-- models.py #创建博客系统数据库表 | | |-- sitemaps.py #配置网站地图 | | |-- tests.py #单元测试 | | |-- urls.py #博客系统分配的urls | | |-- views.py #博客系统业务逻辑代码 | | |-- __init__.py | | |-- migrations #记录数据库操作记录(自动) | | |-- templatetags #提供自定义过滤器或模板语言,方便传递数据到前端 | | | |-- blog_tags.py | | | |-- __init__.py | | | |-- __pycache__ | | |-- __pycache__ | |-- RESTfulApi #RESTfulApi应用 | | |-- admin.py | | |-- apps.py | | |-- models.py | | |-- tests.py | | |-- permissions.py #权限配置 | | |-- serializers.py #序列化类 | | |-- views.py #RESTfulApi应用视图 | | |-- urls.py #RESTfulApi应用分配的urls | | |-- __init__.py | | |-- migrations | | |-- __pycache__ |-- media #媒体文件夹 | |-- avatar #头像上传 | |-- editor #编辑器上传的图片 |-- Middleware #自定义的统计网站在线人数中间件 | |-- auth.py | |-- __pycache__ |-- Myblog #项目的容器(对整个程序进行配置) | |-- settings.py #该 Django 项目的设置/配置 | |-- urls.py #该 Django 项目的 URL 声明,一份由 Django 驱动的网站"目录"。 | |-- wsgi.py #一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目。(依靠WSGI规则封装Socket的模块,可配置Python默认或uwsgi模块) | |-- __init__.py #一个空文件,告诉 Python 该目录是一个 Python 包 | |-- __pycache__ |-- static #项目的静态文件夹 | |-- admin #上线收集的admin静态文件 | |-- css | |-- fonts | |-- images #博客图片地址 | |-- js | |-- mdeditor #上线收集的mdeditor编辑器静态文件 |-- templates #项目模板 |-- accounts-base.html #用户信息继承页 |-- article.html # |-- articleList.html # |-- content-base.html #文章继承页 |-- eosones.html #主站 |-- homepage.html # |-- project.html # |-- sponsor.html # |-- account #修改的allauth插件自带模板
如何从零搭建博客
Django 是使用 Python 编写的一个开源 Web 框架,可以用它来快速搭建一个高性能的网站。如果你是从零开始,而且没有任何相关的语言基础,推荐首先阅读 w3cschool | Django教程学习Django基础知识,如果你只是从零接触Python而已,直接上手项目是公认的学习一门语言的好方法,其中追梦人物的博客教程将会教你搭建一个完整的个人博客。学习Django的过程从要养成查看源码与官方文档的习惯,90%的问题都可以在这里解决。自学从来不是一件轻松的事情,不仅效率很低,而且解决问题很慢收益且很小,自学一门语言的时间精力有限,如果你做事不是结果导向型,如何把握好兴趣使然的深度与工作必须的效率两者之间的权重问题是关键。
博客源码:Github地址
博主,我拉取了你的github代码运行,registry.py报错ImportError: cannot import name 'autodiscover',这个模块是忘写了吗