0x00 前言
写在前面的话:很差意思,标题难以避免俗,起了个很俗气的名字。前端
这是个人一个全栈类型 Django 开源项目的系列讲解教程的目录。vue
为何写这系列的文章呢?目的总的来讲有两个:ios
- 一是但愿更多的人经过本系列的教程更好的认识 Django 开发技术栈或者说是 Web 开发技术栈,让更多的 Pythonist 更顺畅的进入 Django 开发的世界。
- 二是但愿借由这个持续更新的过程让本身更加深刻理解 Django 技术栈 Django / DjangoRestFramework / Docker / Vue.JS / Celery / PostgreSQL / Redis / RabbitMQ
为何说这个项目你不容错过?git
- 新!新!新!保持最新的软件开发版本,E.G: Django 2.0 + Vue.JS 2.5 + PostgreSQL 10 + Celery 4.1.0
- Django 框架:Django 及其 强大的生态圈
- 后端组件:PostgreSQL RabbitMQ Redis Ngnix
- 前端技术:单页应用 先后端分离 (VueJS+Webpack+DjangoRestFramework), 自动化部署
- Django 社区最佳实践:从配置 / 开发 / 测试 / 部署 全干工程师 (Full Stuff Engineer) 的最新的 DevOps 思考成果。
- 基本覆盖了进阶 Django 开发所须要的各类组件与操做。
- 只须要适当的调整,本项目就能够成为你新开项目的最佳脚手架。
本系列文章的面向读者:程序员
- 目标是 DevOps 的 Pythonist
- 爱瞎几把折腾的 Pythonist
- 先后端分离的实践者
生命苦短,赶快上车github
Life is Short , I Use Pythondjango
0x01 项目介绍
YaDjangoBlog 是另外一个关于博客的轮子,可是其野心并不在于仅仅多造一个博客系统,还有经过本项目作 Django 全栈开发的最佳实践。axios
1.1 项目地址
- 前端代码 https://github.com/twocucao/YaVueBlog
- 后端代码 https://github.com/twocucao/YaDjangoBlog
1.2 项目技术栈
- 开发与部署环境为 Docker
- Python 3.5.2
- 前端 Vue + Webpack + ES2015 + axios
- 后端 Django 2.0 + DjangoRestFramework + Celery
- 自动化部署选用工具 Ansible 以及 Docker
- 后端组件
- ElasticSearch 用于搜索和推荐
- PostgreSQL 用于数据持久化
- Redis 用于 Session / 和缓存
- RabbitMQ 分布式队列 / 定时任务
- Nginx 用于反向代理
1.3 特别感谢
- ansible django stack: https://github.com/jcalazan/ansible-django-stack
- cookiecutter-django: https://github.com/pydanny/cookiecutter-django
- djangopackages: https://github.com/djangopackages/djangopackages
- 董伟明 关于 ElasticSearch 的几篇文章 http://www.dongwm.com/archives/%E7%9F%A5%E4%B9%8ELive%E5%85%A8%E6%96%87%E6%90%9C%E7%B4%A2%E4%B9%8B%E4%BD%BF%E7%94%A8Elasticsearch%E6%90%9C%E7%B4%A2/
- 各个组件的开发者们
- ElasticSearch
- PostgreSQL
- Redis
- RabbitMQ
- Nginx
- Docker
1.4 项目截图
好,讲了半天有的没的,仍是贴点图吧,毕竟我不是 Markdown 程序员后端
咱们先看看能看得见的前端页面api
主页
博客详情
这是一个很普通的 Archive 页面
这是以 Elasticsearch 为支持的 搜索功能
Django 自带后台
先后端分离怎么能少的了 rest api 的实现与便捷的前端调试?
Django Debug Tools 帮你迅速调优接口
咱们再先看看能看得见的开发界面
在终端执行 tmuxinator start yavueblog 就能够自动运行全部任务
前端运行状态
后端运行状态
固然,你能够直接用客户端链接到对应的服务商检查组件的运行状态
0x02 系列教程目录
2.1 教程注意项
- 本文的开发环境配置仅仅限于 macOS 上,若是读者使用的是 Windows / 可能须要本身搞定环境的配置。不过笔者使用了 Docker 进行环境配置,应该配置环境会省事不少。
- 在阅读本教程,请读者至少跟着 Django 官方的教程跟着走一遍。不要零基础一通瞎搞。
- 若是在使用过程当中出现问题,请在 ISSUE 提供尽量多的信息,将问题描述清楚。
本系列教程并不按照一步一步增长代码的方式写教程。
我先带着你们搭建好整个项目框架,而后从不一样的视角开介绍这个项目,好比:
- 某个模块的 models 是如何设计的?有哪些卧槽竟然能够这么用的写代码方式。
- Django User 如何作扩展?一样在 Django 的生态圈里面,哪些场景有哪些值得围观的包,好比 guardian
- Restful API 应该如何写,Django 里面的 Rest API 应该如何写?会有哪些生产效率 guangguangguang 提高上去的使用方法?权限怎么作?限流怎么搞?
- Py.test TDD 测试驱动开发了解一下?
- 使用 Tmux 等合理工具的优雅的单终端多开。
2.2 教程目录
- Django 全栈开发教程 - 2018 年不容错过的 Django 全栈项目 -- 目录篇
- Django 全栈开发教程 - YaDjangoBlog 的开发环境配置
- Django 全栈开发教程 - YaDjangoBlog 的后端组件配置
- Django 全栈开发教程 - YaDjangoBlog 的先后端初步设计
- Django 全栈开发教程 - YaDjangoBlog 的后端初步实现
- Django 全栈开发教程 - YaDjangoBlog 的前端实现 YaVueBlog
- Django 全栈开发教程 - YaDjangoBlog 的后端组件之 Redis
- Django 全栈开发教程 - YaDjangoBlog 的后端组件之 PostgreSQL
- Django 全栈开发教程 - YaDjangoBlog 的后端组件之 Elasticsearch
- Django 全栈开发教程 - YaDjangoBlog 的后端组件之 RabbitMQ
- Django 全栈开发教程 - YaDjangoBlog 的生产环境部署
0xEE. 参考连接
还犹豫啥,快上车吧
- 前端代码 https://github.com/twocucao/YaVueBlog
- 后端代码 https://github.com/twocucao/YaDjangoBlog
ChangeLog: