接触django
有一段时间了,发现国内网站上的django
学习资料,虽然有很多,但大多有老旧的通病,所基于的版本简直是太旧了,就拿《the django book》
来讲,这本书应该是不少人接触django
的第一本教程了,但是竟然是基于1.1版本的……要知道,如今已经出了1.9版本的django了,这中间差了多少?前端
教程版本落后,在实战学习中每每会出现不少兼容性问题,笔者当时就吃了很多这方面的亏,学习1.1的教程,拿1.8的版原本实践,可想而知,得有多少坑……没办法,谁让国内django方面的实战案例教程如百里挑一呢?最后,只能拿来1.8版本的api文档啃英文了。python
鉴于以上,笔者想写一系列实战教程,针对最新的django版本,与你们分享,为新手们学习django提供捷径,同时巩固我的知识体系,若有笔误,欢迎大神们指点一二。数据库
在这个实战项目里,咱们会从头开始,一步步搭建一个完整的blog站点。从开发环境到生产环境的发布,会分红几部分文章来完成。django
请注意,此为实战项目教程,不会从头讲基础的django知识。建议有必定的django基础后再阅读该系列文章。bootstrap
该实战项目主要包含如下几个部分:api
安装django
,搭建隔离的开发环境框架
建立工程及数据库基本配置python2.7
建立blog
应用并对其创建模型学习
搭建blog
站点的后台管理系统admin
网站
利用bootstrap
框架和django
的模板及视图系统构建前端基本页面
增长分页
实现发送邮件功能
建立表单及其处理
建立基于模型的表单
集成第三方应用
构建复杂的查询集
建立自定义模板标签
建立自定义模板过滤器
添加站点地图sitemap
添加订阅
利用Solr
和Haystack
创建站内搜索引擎
本项目要用到的软件及版本以下
python==2.7+
django==1.8.6
virtualenv==13.1.2
下面我们正式开始进行blog项目的开发。
开发项目的第一点,也是首要的,就是创建一个隔离的开发环境,避免污染本机系统,同时保证不一样版本的控制与隔离。其重要性,这里再也不赘述,之后会单独写一篇文章具体讲述,以及如何使用virtualenv
。
lwj@macpro:~$ mkdir myproject lwj@macpro:~$ cd myproject/
myproject
中,创建独立的python运行环境lwj@macpro:~/myproject$ virtualenv --no-site-packages venv New python executable in venv/bin/python Installing setuptools, pip, wheel...done. lwj@macpro:~/myproject$ ls venv/ lwj@macpro:~/myproject$ cd venv lwj@macpro:~/myproject/venv$ ls bin/ include/ lib/ lwj@macpro:~/myproject/venv$
命令virtualenv venv
就能够建立一个独立的Python运行环境venv
,咱们还加上了参数--no-site-packages
,这样,已经安装到系统Python环境中的全部第三方包都不会复制过来,这样,咱们就获得了一个不带任何第三方包的“干净”的Python运行环境。
可看到在myproject
目录下生成了一个新的文件夹venv
,里面包含bin
、include
、lib
三个目录,即组成了新的、干净的、隔离的python运行环境。
运行下面这行命令就能激活上面创建的隔离的python运行环境
lwj@macpro:~/myproject$ source venv/bin/activate (venv)lwj@macpro:~/myproject$
如上所示,在命令行的前面出现(venv)
前缀,即表示咱们刚刚创建的隔离环境venv
已被成功激活。这时全部的操做都是在venv
这个Python独立的运行环境下,不会受外界系统python环境的影响,也不会影响到外界系统的Python环境。
此时,在此环境下安装的全部的python包都会被默认安装到venv/lib/python2.7/site-packages/
目录下。
【补充】注销激活,deactivate
便可。
(venv)lwj@macpro:~/myproject$ deactivate
隔离的环境搭建好了,接着就能够安装django了。
利用命令pip install Django==1.8.6
,就可安装指定版本为1.8.6
的django
了。固然,安装django的方法有多种,咱们在这里选择最方便的一种,直接用pip
安装。由于在建立venv
隔离环境的时候,已经预装好了pip
,因此这里用pip
安装django
就很方便了,就是一句命令的事儿。之后在该项目中全部用到的python包,咱们都会直接用pip
来安装。
(venv)lwj@macpro:~/myproject/venv$ pip install Django==1.8.6 Collecting Django==1.8.6 * * *
安装完成。
在venv/lib/python2.7/site-packages/
目录下会看到新增长Django-1.8.6.dist-info/
和django/
文件夹。
方法1:pip list
(venv)lwj@macpro:~/myproject/venv$ pip list Django (1.8.6) pip (7.1.2) setuptools (18.2) wheel (0.24.0)
会发现有Django (1.8.6)
,说明已安装Django
,并且可看出其版本为1.8.6
。
方法2:import django
打开python
命令终端
(venv)lwj@macpro:~/myproject/venv$ python Python 2.7.6 (default, Sep 9 2014, 15:04:36) [GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>>
导入django包,
>>> import django >>> django.VERSION (1, 8, 6, 'final', 0)
成功打印出django
的版本,到此,则表示django
已成功安装。
后面咱们就能够开始建立blog工程了……请见下章