Django 中提供了开发网站经常用到的模块,常见的代码都为你写好了,通过减少重复的代码,Django 使你能够专注于 web 应用上有 趣的关键性的东西。为了达到这个目标,Django 提供了通用Web开发模式的高度抽象,提供了频繁进行的编程作业的快速解决方法,以及为“如何解决问题”提供了清晰明了的约定。Django的理念是DRY(Don't Repeat Yourself)来鼓励快速开发!
让我们一览 Django 全貌
urls.py
网址入口,关联到对应的views.py中的一个函数(或者generic类),访问网址就对应一个函数。
views.py
处理用户发出的请求,从urls.py中对应过来, 通过渲染templates中的网页可以将显示内容,比如登陆后的用户名,用户请求的数据,输出到网页。
models.py
与数据库操作相关,存入或读取数据时用到这个,当然用不到数据库的时候 你可以不使用。
forms.py
表单,用户在浏览器上输入数据提交,对数据的验证工作以及输入框的生成等工作,当然你也可以不使用。
templates 文件夹
views.py 中的函数渲染templates中的Html模板,得到动态内容的网页,当然可以用缓存来提高速度。
admin.py
后台,可以用很少量的代码就拥有一个强大的后台。
settings.py
Django 的设置,配置文件,比如 DEBUG 的开关,静态文件的位置等。
本文最后面讲了如何 使用virtualenv实现多个互不干扰的开发环境。
一. 版本选择
Django 1.5.x 支持 Python 2.6.5 Python 2.7, Python 3.2 和 3.3.
Django 1.6.x 支持 Python 2.6.X, 2.7.X, 3.2.X 和 3.3.X
Django 1.7.x 支持 Python 2.7, 3.2, 3.3, 和 3.4 (注意:Python 2.6 不支持了)
Django 1.8.x 支持 Python 2.7, 3.2, 3.3, 3.4 和 3.5. (长期支持版本 LTS)
Django 1.9.x 支持 Python 2.7, 3.4 和 3.5. 不支持 3.3 了
Django 1.10.x 支持 Python 2.7, 3.4 和 3.5.
Django 1.11.x 支持 Python 2.7, 3.4, 3.5 和 3.6(长期支持版本 LTS) 最后一个支持 Python 2.7 的版本
Django 2.0.x 支持 Python 3.4, 3.5 和 3.6 (注意,不再支持 Python 2)
更详细的可以参考这里,一般来说,选择长期支持版本比较好。
使用最新版本的问题就是,可能要用到的一些第三方插件没有及时更新,无法正常使用这些三方包。
如果是学习,可以选择目前的 Django 1.8.x 来进行,遇到问题也容易找到答案。
如果是正式启动的新项目,建议用 Django 1.11.x,毕竟 Django 1.9 以后 admin 界面更漂亮些。
二. 安装 Django
推荐:在Cloud Studio中进行Django开发
新手目前还有一个月免费云主机,体验在线开发和部署的乐趣。
- step1:访问Cloud Studio,注册/登录账户。
- step2:在右侧的运行环境菜单选择:
"PHP + Python + Java 三种语言环境"
- step3: 在终端上安装Django,启动项目,如图
image.png
注意:以下方法中任何一种方法安装都可,不用每个都试一次。
另外 建议自行安装 bpython,这样在用起来会爽很多。进入终端的时候输入 bpython 可以有提示。当然也可以选择用 ipython
2.1. 用 pip 来安装
2.1.1 需要先安装pip
(1). ubuntu:
`sudo` `apt-get ``install` `python-pip`
(2). Fedora:
`yum ``install` `python-pip`
(3). Linux, Mac OSX, Windows 下都可用 get-pip.py 来安装 pip:https://pip.pypa.io/en/latest/installing.html
或者直接下载:get-pip.py 然后运行在终端运行 python get-pip.py 就可以安装 pip。
Note: 也可以下载 pip 源码包,运行 python setup.py install 进行安装
2.1.2 利用 pip 安装 Django
`(``sudo``) pip ``install` `Django``或者 (``sudo``) pip ``install` `Django==1.8.16 或者 pip ``install` `Django==1.11.8`
如果想升级 pip 可以用:
`(``sudo``) pip ``install` `--upgrade pip`
Windows 用户不要加 sudo,如果提示 ‘python’不是内部或外部命令,也不是可运行的程序或批处理文件。
那说明你的 Python 没有安装好,或者环境变量没有配置正确,最简单的办法是安装新版本的 Python(2.7.9 以上), 里面集成了 pip,安装时要勾选上环境变量这一个
windows 安装 Python 图片
还可以参见:Python 环境搭建
2.2. 下载源码安装
https://www.djangoproject.com/download/
如果是源码包, 比如 django-1.11.8.tar.gz
2.2.1 Linux 或 Mac 下
`tar` `-xvf django-1.11.8.``tar``.gz``cd` `django-1.11.8``(``sudo``) python setup.py ``install`
2.2.2 Windows 下
直接用解压软件解压,然后到命令行(XP/Win7点击开始,在下面的那个输入框中输入 cmd, Win8在开始那里点右键,选择命令行)
比如在 *D:\django-1.11.8* 这个文件夹下
`cd` `D:``cd` `django-1.11.8``python setup.py ``install`
什么?提示 ‘python’不是内部或外部命令,也不是可运行的程序或批处理文件。
那说明你的 Python 没有安装好,或者路径没有配置正确,参见:Python 环境搭建
2.3. Linux用自带源进行安装(不推荐)
2.3.1 ubuntu 下安装 Django
`sudo` `apt-get ``install` `python-django -y`
2.3.2 Fedora 下安装用 yum
`yum ``install` `python-django`
注意:自带源安装的 Django 一般版本比较旧,而用 pip 可以安装最新的版本。
三. 检查是否安装成功
终端上输入 python ,点击 Enter,进行 python 环境
`>>> ``import` `django``>>> django.VERSION``(1, 11, 8, ``'final'``, 0)``>>> ``>>> django.get_version()``'1.11.8'`
如果运行后看到版本号,就证明安装成功了,有问题请评论!
四. 搭建多个互不干扰的开发环境(可选)
我们有的时候会发现,一个电脑上有多个项目,一个依赖 Django 1.8,另一个比较旧的项目又要用 Django 1.5,这时候怎么办呢?
我们需要一个依赖包管理的工具来处理不同的环境。
如果不想搭建这个环境,只想用某一个版本的 Django 也可以,但是推荐学习此内容!
4.1 虚拟环境依赖安装
开发会用 virtualenv 来管理多个开发环境
Linux/MacOS 下
virtualenvwrapper 使得virtualenv变得更好用,所以我们一起安装了
`# 安装:``(sudo) pip install virtualenv virtualenvwrapper`
修改~/.bash_profile或其它环境变量相关文件(如 .bashrc 或用 ZSH 之后的 .zshrc),添加以下语句
`export` `WORKON_HOME=$HOME/.virtualenvs``export` `PROJECT_HOME=$HOME``/workspace``source` `/usr/local/bin/virtualenvwrapper``.sh`
修改后使之立即生效(也可以重启终端使之生效):
`source` `~/.bash_profile`
Windows 下:
`pip ``install` `virtualenv virtualenvwrapper-win`
【可选】Windows下默认虚拟环境是放在用户名下面的Envs中的,与桌面,我的文档,下载等文件夹在一块的。更改方法:计算机,属性,高级系统设置,环境变量,添加WORKON_HOME,如图(windows 10 环境变量设置截图):
workon_home.png4.2 虚拟环境使用方法:
mkvirtualenv zqxt:创建运行环境zqxt
workon zqxt: 工作在 zqxt 环境 或 从其它环境切换到 zqxt 环境
deactivate: 退出终端环境
其它的:
rmvirtualenv ENV:删除运行环境ENV
mkproject mic:创建mic项目和运行环境mic
mktmpenv:创建临时运行环境
lsvirtualenv: 列出可用的运行环境
lssitepackages: 列出当前环境安装了的包
创建的环境是独立的,互不干扰,无需sudo权限即可使用 pip 来进行包的管理。
网友评论