python之Django初探

0x01、python之Django

python中有许多不同款的开放源代码的Web应用框架,而Django是其中最最有代表性的,许多成功的网站和APP都是基于Django。
Django采用了MVC的软件设计模式,即模型M,视图V和控制器C。Django是走大而全的方向,它最出名的是其全自动化的管理后台:只需要使用起ORM,做简单的对象定义,它就能自动生成数据库结构、以及全功能的管理后台。
大家可以参考Django中文文档进行学习,这里有更全面的知识。

0x02、Django的安装

pip安装

pip install Django

下载源代码安装

Django 下载地址:https://www.djangoproject.com/download/
下载 Django 压缩包,解压并和Python安装目录放在同一个根目录,进入 Django 目录,执行python setup.py install,然后开始安装,Django将要被安装到Python的Lib下site-packages。

安装完成后需要进行环境变量的设置,根据自己安装位置。如:C:/Python33/Lib/site-packages/django;C:/Python33/Scripts。


出现如上提示表示我们的Django安装成功了。

0x03、Django创建项目

安装完成后,我们可以使用管理工具django-admin.py来创建一个项目。

使用django-admin.py可以查看一些基本命令

使用django,创建了一个HelloWorld的项目。
django-admin.py startproject HelloWorld


目录说明:
HelloWorld: 项目的容器。
manage.py: 一个实用的命令行工具,可让你以各种方式与该 Django项目进行交互(django shell和数据库等)。
内层 HelloWorld 目录是项目中的实际 Python 包。该目录名就是 Python 包名,通过它你可以导入它里面的任何东西。
HelloWorld/init.py: 一个空文件,告诉 Python 该目录是一个 Python 包。关于包的更多内容
HelloWorld/settings.py: 该 Django 项目的设置/配置。
HelloWorld/urls.py: 该 Django 项目的 URL 声明; 一份由 Django 驱动的网站”目录”。
HelloWorld/wsgi.py: 一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目。

注意:

有过PHP编程背景的话,我们可能习惯于将代码都放在 Web 服务器的文档根目录(例如 /var/www 这样的地方)。而在 Django中,我们不能这样做。把任何Python代码放到Web 服务器的文档根目录中都不是个好主意,因为这样一来,我们就要冒着别人透过页面直接看到代码的风险。这对于安全可不是件好事。所以,把代码放置在文档根目录之外的某些目录中。

Django中带有一个内建的纯粹由Python编写的轻量级Web服务器,可供站点开发过程中使用。
运行python manage.py runserver 0.0.0.0:8000,Django 监听所有网络接口和IP地址,因此也就让其它电脑可连接到开发服务器了,访问我们的ip即可查看我们的初始化网页。

这是利用Django框架搭建的原始的web页面,这样我们可以在此基础上进行我们的修改。

0x04、Django框架的进阶

当我们输入http://localhost/hello/时候,Django是如何处理请求的?
首先一切都开始于setting文件。当我们运行python manage.py runserver时,脚本在manage.py同一个目录下查找 settings.py文件。这个文件中包含了了所有关于这个Django项目的配置信息。settings.py中包含一个ROOT_URLCONF配置指向自动生成的urls.py.ROOT_URLCONF = ‘HelloWorld.urls’
访问URL /hello/时,Django根据ROOT_URLCONF的设置装载URLConf。
然后按顺序逐个匹配URLConf里URLpatterns,直到找到匹配项。找到后,调用对应视图函数。并把HttpRequest对象做为第一个参数传入。