Python 进阶 (三十六)Web 框架 Django 项目搭建全过程
一、IDE 说明
Win7 系统
Python:3.5
Django:1.10
Pymysql:0.7.10
Mysql:5.5
注:可通过pip freeze
查看已安装库版本信息。Django 是由 Python 开发的一个免费的开源网站框架,可以用于快速搭建高性能,优雅的网站!
二、Django 特点
强大的数据库功能;
用 python 的类继承,几行代码就可以拥有一个丰富,动态的数据库操作接口(API),如果需要你也能执行 SQL 语句。
自带的强大的后台功能;
几行简单的代码就让你的网站拥有一个强大的后台,轻松管理你的内容! 优雅的网址
用正则匹配网址,传递到对应函数,随意定义,如你所想!
模板系统--强大,易扩展的模板系统,设计简易,代码,样式分开设计,更容易管理。
缓存系统--与 memcached 或其它的缓存系统联用,更出色的表现,更快的加载速度。
国际化--完全支持多语言应用,允许你定义翻译的字符,轻松翻译成不同国家的语言。
有关 Python,Mysql 的安装操作这里不再进行阐述,大家可在网络上自行查找解决。其中,django,pymysql
的安装使用pip install *
命令即可完成。
安装好 Django 之后, 就可以使用 django-admin.py 管理工具来创建一个项目。首先我们来看下 django-admin.py 的命令介绍,在命令行输入 django-admin.py 查看可用的项目管理命令。
Django 项目创建 HelloWorld 项目具体过程如下:
Step1: 在搭建 Django 项目之前,首先选择项目存放目录。然后在 Dos 窗口 CD 切换到项目存放目录。Step2: 创建项目 执行 django-admin.py startproject HelloWorld
打开 IDEA,可看到创建的项目目录如下图所示:
目录说明:
HelloWorld: 项目的容器。
manage.py: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互。
HelloWorld/init.py: 一个空文件,告诉 Python 该目录是一个 Python 包。
HelloWorld/settings.py: 该 Django 项目的设置/配置。
HelloWorld/urls.py: 该 Django 项目的 URL 声明; 一份由 Django 驱动的网站"目录"。
HelloWorld/wsgi.py: 一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目。
接下来我们进入 HelloWorld 目录输入以下命令,启动服务器:
0.0.0.0 让其它电脑可连接到开发服务器,8000 为端口号。如果不说明,那么端口号默认为 8000。
在浏览器输入你服务器的 ip 及端口号,如果正常启动,输出结果如下:
Step3: 创建应用 在命令行输入 django-admin.py startapp demo
打开 IDEA,可看到创建的项目目录如下图所示:
目录说明:
demo: 应用的容器。注:后面的页面设计文件,在此目录下创建目录 templates,名为 XX.html 的文件放在此处。
init.py:如上一个__init__.py 文件
migrations: 数据库相关目录,同步数据库之后会出现数据类。
admin.py: admin 后台管理文件
apps.py: app 应用管理文件
models.py:主要用一个 Python 类来描述数据表,称为模型(model) 。运用这个类,你可以通过简单的 Python 的代码来创建、检索、更新、删除 数据库中的记录而无需写一条又一条的 SQL 语句。
tests.py:测试文件
views.py:包含了页面的业务逻辑。
三、创建超级管理员
四、服务端响应客户端请求过程
流程图如下:
上面的流程图可以大致描述 Django 处理 request 的流程,按照流程图 2 的标注,可以分为以下几个步骤:
1.用户通过浏览器请求一个页面。
2.请求到达
Request Middlewares
,中间件对 request 做一些预处理或者直接 response 请求。3.URLConf 通过 urls.py 文件和请求的 URL 找到相应的 View。
4.View Middlewares 被访问,它同样可以对 request 做一些处理或者直接返回 response。
5.调用 View 中的函数。
6.View 中的方法可以选择性的通过 Models 访问底层的数据。
7.所有的 Model-to-DB 的交互都是通过 manager 完成的。
8.如果需要,Views 可以使用一个特殊的 Context。
9.Context 被传给 Template 用来生成页面。
a.Template 使用 Filters 和 Tags 去渲染输出
b.输出被返回到 View
c.HTTPResponse 被发送到 Response Middlewares
d.任何 Response Middlewares 都可以丰富 response 或者返回一个完全不同的 response
e.Response 返回到浏览器,呈现给用户
4.1 url() 函数
Django url() 可以接收四个参数,分别是两个必选参数:regex、view 和两个可选参数:kwargs、name,接下来详细介绍这四个参数。
regex
: 正则表达式,与之匹配的 URL 会执行对应的第二个参数 view。
view
: 用于执行与正则表达式匹配的 URL 请求。
kwargs
: 视图使用的字典类型的参数。
name
: 用来反向获取 URL。
五、Django 项目部署
在前面的介绍中我们使用 python manage.py runserver 来运行服务器。这只适用测试环境中使用。正式发布的服务,我们需要一个可以稳定而持续的服务器,比如 apache, Nginx, lighttpd 等,本文后续将以 Nginx 为例。
六、设置用自己的 iP 地址访问项目
1.首先需要执行>manage.py runserver 0.0.0.0:8000。
2.在 setting.py 里面需要添加 ALLOWED_HOSTS="*"。
版权声明: 本文为 InfoQ 作者【No Silver Bullet】的原创文章。
原文链接:【http://xie.infoq.cn/article/e777ef10ec7598a34d03dceb2】。文章转载请联系作者。
评论