Tango 这个项目来源于 how to tango with django,内容比较基础,适合初学入门。官方解释说这是地球上最好的学习Django的教程。
为什么选择这个项目
省时
提供最有效的信息,让你的大脑不必过滤一些无关紧要的内容。把精力花在最核心的事情上。
优化学习路线
使用Django框架进行web开发,可以大大地节省时间和避开一些问题。但是前提是你必须知道怎么使用它们。这个项目就是让你快速掌握它们。
优化工作流程
由于Django是个web框架,所以大部分时候都需要你在框架中指定,固定的一些地方添加代码。这个对于对框架不太熟悉的新手来说是个灾难。所以项目教程创建了工作流程来一步步来引导。
练习,实战
不要只带一双眼睛来阅读,需要把他看成一个实战手册。一个一个单词敲到编辑器里,切忌copy。
可以学到什么
Django教程通过一步步开发rango应用来讲解,主要涉及的开发任务清单如下:
- 开发环境的搭建:
- 怎么使用Pip命令。
- git的使用和基本命令。
- 安装Django。
- 怎么新建一个Django项目和APP。
- 配置 Django, 可以服务一些静态媒体和静态媒体文件。
- 使用Model-View-Template 的设计模式。
- 创建数据库models和了解怎么使用框架提供的关系映射函数。
- 放到(未完成)
- 使用Django只带的用户验证和后台管理服务。
- 引入一些第三方库。
- 学习一些web开发的前端技术CSS,JavaScript和一些前端框架如:bootstrap。
- 使用Django中的cookie和session。
- 使用一些如AJAX的高级应用到项目中。
- 部署项目到web服务器上。
源代码: https://github.com/leifos/tango_with_django
网站: http://www.tangowithdjango.com/rango/
优秀资源链接
- Python, http://www.python.org
- Pip, http://www.pip-installer.org
- Django, https://www.djangoproject.com
- Git, http://git-scm.com
- GitHub, https://github.com
- HTML, http://www.w3.org/html/
- CSS, http://www.w3.org/Style/CSS/
- JQuery, http://jquery.com
- Twitter Bootstrap, http://getbootstrap.com/
- Bing Search API via Azure Datamarket, http://datamarket.azure.com
- PythonAnywhere, https://www.pythonanywhere.com
Rango需求分析
Rango这个项目虽小,但是五脏俱全。这个项目涵盖了所有Django的核心开发技术。该项目的主要功能如下:
- 主页面:
- 5个浏览量最高的网页。
- 5个最流行的分类。
- 可以搜索分类。
- 当用户点击一个分类频道,进入该分类页面:
- 显示分类频道名,访问人数。
- 显示这个分类频道中收藏的网页。
- 搜索栏(基于Bing’s搜索引擎)。
- 可以对每个分类频道点赞。
- 用户只有在登录成功后才能去将搜索到的网页添加到频道中。
预期效果
主页面
频道页面
软件架构
大部分应用网站都是采用的三层结构,Rango在这个基础上引用了额外的服务(Bing搜索引擎)。
当我们基于Django开发这个项目可能会遇到以下几个技术难点:
- 用户使用不同的web浏览器(例如:Chrome,火狐,IE等)来渲染页面。
- 中间件使用Django框架。
- 数据库使用SQLite3。
- 使用Bing搜索引擎。
页面和URL映射
URL主要分为以下几类:
- /rango/ 指向主页面。
- /rango/about/ 指向关于页面。
- /rango/category// 指向频道页面
- /rango/etc/ 这个是留下来方便用户扩展。
数据实体-数据关系图
rango这个框架有两个实体:category和page。一个网页可以被一个或者多个分类频道收录。当然一个频道又可以收录多个网页。