来自http://www.maiziedu.com/course/307/
Python web framework 介绍
-
什么是框架
特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以帮助你快速开发特定的系统,简单说就是使用别人搭好的舞台,你来做表演。
-
常见框架
- full-stack framework(重量级框架): Django web2py
- non Full-stack framework(轻量级框架): Tornado Flask bottle web.py
- 官网介绍: https://wiki.python.org/moin/WebFrameworks
-
如何选择框架
- 从项目需求出发
- 以内容结构优先,选择Django
- 以app接口优先(app后台提供的数据和接口),选择轻量级
- 从框架特点去选择
- 高性能需求,选择Tornado
- 从项目需求出发
-
开发环境
- Pyhton 3.5.1
- Django 1.9.5
- MySQL 5.6
- PyMySQL 0.7.2
Django Basics
命令行工具 django-admin.py manage.py
django-admin.py是Django的一个用于管理任务的命令行工具,manage.py是对django-admin.py的简单包装,每个Django project里面都会有一个manage.py。
语法:
django-admin.py <subcommand> [options]
manage.py <subcommand> [options]
subcommand为子命令, options为可选的
常用子命令:
django-admin.py help <command> # 查询一个命令的使用方法
startproject <name> # 创建一个新项目
startapp <name> # 创建新的app
manage.py命令
createsuperuser # 创建超级用户
changepassword <username> # 更改密码
快速创建一个网页
目录结构
- hello_django(project):
_pycache_ 缓存文件
setting.py 项目配置
urls.py url配置
wsgi.py WSGI配置
- hello(app)
migrations 数据库同步脚本目录
admin.py admin配置
apps.py app配置
models.py 模型代码
tests.py 单元测试
views.py 业务代码
创建查询用户列表页面
- 在setting.py里的INSTALLED_APPS增加app名字
- 在views.py里定义一个业务请求处理的函数
def hello(request):
return render(request, 'table.html')
- 定义一个模板并引入静态文件
- 在hello下创建static,templates文件夹;
- static 存放静态文件(js,css);
- templates 存放模板文件;
- 在urls.py里面定义url地址
- 启动服务
- 把用户数据查询出来并渲染到页面上
mtv开发模式
Django的MTV模式本质上和MVC一样,也是为了各个组件保持松耦合关系,知识定义上有不同。
- M(Model)模型:负责业务对象和数据库的关系映射(ORM)
- T(Template)模板:负责如何把页面展示给用户(html)
- V(view)视图:负责业务逻辑,并在适当时候调用model和template
- URL分离器:将一个个个的URL的页面请求分发给不同的View处理,View再调用相应的Model和Template。
Django响应原理流程图
- web服务器(中间件)收到一个HTTP请求
- Django在URLconf里查找相应的视图(View)函数来处理HTTP请求
- 视图函数调用相应的数据模型来存取数据、调用相应的模板想用户展示页面
- 视图函数处理结束后返回一个HTTP的相应给Web服务器
- Web拂去其将响应发送给客户端
MTV的优势
- 各种组件都是松耦合的。每个由Django驱动的web应用都有着明确的母的,并且可独立更改而不影响其他的部分(如:开发者更改一个应用程序中的URL而不用影响到这个程序底层的实现;设计可以改变HTML页面的样式而不用接触Python代码;数据库管理员可以重新命名数据表并且只需更改模型,无需从一大堆文件中进行查找和替换)
Django MTV模式 文件
网友评论