Django是基于Python开发的免费的开源网站框架,也是python web开发中重量级的web框架,能够用于快速搭建高性能而且优雅的网站!
下面以Fedora为例安装Django,最新Fedora 23集成了python 3.4.3,因此能够直接安装django,同时建议不要使用本身编译安装的python来安装django,这样可能会出问题,由于不少东西要依赖于系统自己,本身编译安装的python只用来开发本地应用,而不是web开发;另外在Fedora中,输入python会提示命令找不到,而输入python3会进入python交互式界面,那是由于/usr/bin/下只有python3软连接,连接到python3.4,而并无python这个连接,因此为了后来方便,咱们能够创建一个软连接python,不用每次都再输python3了,命令以下:
ln -s /usr/bin/python3 /usr/bin/python
这样就创建了一个软连接,之后随时输入python便可了,好的,下面正式的开始安装Django
安装django以前,首先要安装pip,pip是一种相似yum这样的软件安装工具,用它能够很方便的安装软件,而且自动解决版本升级问题,实际上pip是专门安装和管理python包的工具,是easy_install的替代品,因此要先安装pip,pip的在python官网的连接是:https://pypi.python.org/pypi/pip/
进去上述网站以后,点击Installation就能够进入安装说明界面了,网址是:https://pip.pypa.io/en/latest/installing/
紧接着咱们就看到,pip的安装方法之一就是使用get-pip.py脚原本安装,咱们能够复制get-pip.py的连接,也能够先下载到本地计算机上而后上传至服务器,能够看到get-pip.py的连接是:https://bootstrap.pypa.io/get-pip.py
执行下面命令下载该文件:
wget https://bootstrap.pypa.io/get-pip.py
下载完以后,根据官网说明,要使用本地的python运行该脚本:
python get-pip.py
稍等一下pip就安装成功了,能够经过执行的pip命令查看对应的参数,下面使用pip来安装django,django官网有详细的教程:https://www.djangoproject.com/,根听说明知道,安装django的命令是:pip install Django,这样运行默认安装的是最新版,目前是1.9.2,由于python版本的缘由,因此会出现错误,安装失败,根据测试在python3.4基础上安装Django 1.8.9正式版是没有问题的,因此要执行下面命令:
pip install Django==1.8.9
回车后稍等一会,须要下载相应的文件,等执行完毕,Django 1.8.9就安装成功了,若是是CentOS 6.6或者更低版本,系统上带的python版本是2.6.6,那么通过测试安装Django 1.5.8是没有任何问题的因此用pip应该是:pip install Django==1.5.8
等安装完成以后,执行python进入交互式界面,输入import django,而后再输入django.VERSION回车后能够看到刚刚安装的Django的版本号,或者直接执行下面命令:
python -c "import django; print(django.get_version())"
这同时也说明django安装成功了
接下来能够开始建立web应用了,在咱们的根目录下随便建立一个目录,用来专门放置Django项目,在该目录下执行下面命令:
django-admin.py startproject HelloDjango
这就是建立django项目的命令,使用pip安装django后,在/usr/bin/下会生成django-admin.py新版本中也会生成django-admin可执行文件,因此也能够执行:django-admin startproject HelloDjango建立项目,建立后咱们进入项目目录:
cd HelloDjango/
进入目录以后,能够经过tree命令查看目录结构,若是提示没有tree命令的话,可使用yum -y install tree命令来安装
咱们能够看到初始目录的文件了,项目目录下manage.py是一个实用的命令行工具,能够经过它管理django服务器等,容器下还有一个和容器同名的HelloDjango目录,__init__.py是项目初始化文件,告诉python该目录是一个python包,settings.py是用来进行项目配置的文件,urls.py是项目中全部的url声明,能够认为是django驱动整个项目的url目录,能够定义多种优雅的路由请求,wsgi.py是一个WSGI兼容的Web服务器入口,方便运行web项目。如今这就是一个初始的项目,咱们接下来启动这个项目:
python manage.py runserver 主机ip:80
由于要从局域网访问因此后面咱们本身定义的是服务器自己的ip和端口号,启动以后命令行进入等待,访问以前不要忘了关闭防火墙,对于centos可使用以下命令关闭:
/etc/init.d/iptables stop
对于我如今使用的Fedora,关闭命令是:
/bin/systemctl stop firewalld.service
关闭防火墙以后,咱们经过浏览器访问http://hostIP/便可以打开页面,
看到这个页面说明django运行一切正常了,浏览器每发出请求,服务器都会更新消息:
经过Ctrl+C快捷键能够终止服务器,接下来咱们新建一个简单的测试应用,能够在HelloDjango下直接创建视图文件,可是为了应用结构的清晰不建议这样作,正确方法是在容器根目录下,使用以下命令能够创建一个应用,一个项目能够包括多个应用:
python manage.py startapp app1
这样在容器下就会出现一个app1的目录,结构以下:
每一个源文件的含义也不难理解,下面使用vim打开views.py,若是没有vim可使用yum install vim进行安装
打开后views.py是空的,有用的只有头部一行代码,是用于后来模板渲染的
如今咱们直接补充以下代码,打印一行简单的输出:
from django.http import HttpResponse def index(request): return HttpResponse("Hello Django!")
头部包含了请求库,每一个方法都必须有request参数,这是用来接收请求的,HttpResponse方法的做用就是响应请求,而后保存视图文件,进入项目下的HelloDjango目录,编辑settings.py配置文件,找到INSTALLED_APPS配置项,追加一项app1,将应用app1添加到项目容器
保存以后,编辑urls.py文件,头部追加一行from app1 import views as app1_views,这个app_views是咱们本身定义的导入的视图名,而后给urlpatterns这个列表添加一项:url(r'^$', app1_views.index), 注意后面要有一个逗号,前面是定义请求url的正则表达式,后面是响应输出的视图方法,这里正则表达式匹配为空,就是表明的根目录,以下图,带有# new注释的是新增的代码:
如今保存,回到容器下再次运行:python manage.py runserver hostip:80启动开发服务器,用浏览器访问便可
下面能够在以前的视图中再定义一个方法,
def home(request): return render(request, 'home.html')
使用render方法以前要使用from django.shortcuts import render导入对应库,由于前面默认导入了因此不用再次导入了,render方法的做用就是调用对应的视图模板也就是home.html,那么home.html放到什么地方呢,在app1目录下执行下面命令:
$ mkdir templates $ cd templates/ $ vim home.html
在django加载app1应用时,会自动读取templates模板目录从而渲染里面的数据,home.html就是一个网页模板,为了简单,没有添加动态的数据:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>home视图</title>
</head>
<body>
<h3>Hello Django!</h3>
</body>
</html>
一样添加urls.py的配置项,设置访问url,代码就是下图列表中的第三项:
保存后,一样启动服务器,访问http://hostip/home就能够看到对应的响应
以上就是Django基本的安装和最简单的例子。