目录
Web框架
什么是Web框架?
- 协助开发者快速开发 Web 应用程序的一套功能代码
- 开发者只需要按照框架约定要求,在指定位置写上自己的业务逻辑代码
- 例如:在某个区需要成立一家医院,有两种方式:
- 圈地,打地基,盖楼,装修,入驻
- 买楼,装修,入驻
为什么要用Web框架?
web网站发展至今,特别是服务器端,涉及到的知识、内容,非常广泛。这对程序员的要求会越来越高。如果采用成熟,稳健的框架,那么一些基础的工作,比如,安全性,数据流控制等都可以让框架来处理,那么程序开发人员可以把精力放在具体的业务逻辑上面。使用框架的优点:
- 稳定性和可扩展性强
- 可以降低开发难度,提高开发效率。
总结一句话:避免重复造轮子
在 Python 中常用的 Web 框架有
- flask
- django
- tornado
Flask
Flask诞生于2010年,是Armin ronacher(人名)用 Python 语言基于 Werkzeug 工具箱编写的轻量级Web开发框架。
Flask 本身相当于一个内核,其他几乎所有的功能都要用到扩展(邮件扩展Flask-Mail,用户认证Flask-Login,数据库Flask-SQLAlchemy),都需要用第三方的扩展来实现。比如可以用 Flask 扩展加入ORM、窗体验证工具,文件上传、身份验证等。Flask 没有默认使用的数据库,你可以选择 MySQL,也可以用 NoSQL。
其 WSGI 工具箱采用 Werkzeug(路由模块),模板引擎则使用 Jinja2。这两个也是 Flask 框架的核心。
Werkzeug是一个遵循WSGI协议的python函数库
- 其内部实现了很多Web框架底层的东西,比如request和response对象;
- 与WSGI规范的兼容;支持Unicode;
- 支持基本的会话管理和签名Cookie;
- 集成URL请求路由等。
Werkzeug库的 routing 模块负责实现 URL 解析。不同的 URL 对应不同的视图函数,routing模块会对请求信息的URL进行解析,匹配到URL对应的视图函数,执行该函数以此生成一个响应信息。
routing模块内部有:
- Rule类
- 用来构造不同的URL模式的对象,路由URL规则
- Map类
- 存储所有的URL规则和一些配置参数
- BaseConverter的子类
- 负责定义匹配规则
- MapAdapter类
- 负责协调Rule做具体的匹配的工作
Flask常用扩展包:
- Flask-SQLalchemy:操作数据库;
- Flask-script:插入脚本;
- Flask-migrate:管理迁移数据库;
- Flask-Session:Session存储方式指定;
- Flask-WTF:表单;
- Flask-Mail:邮件;
- Flask-Bable:提供国际化和本地化支持,翻译;
- Flask-Login:认证用户状态;
- Flask-OpenID:认证;
- Flask-RESTful:开发REST API的工具;
- Flask-Bootstrap:集成前端Twitter Bootstrap框架;
- Flask-Moment:本地化日期和时间;
- Flask-Admin:简单而可扩展的管理接口的框架
虚拟环境
为什么要搭建虚拟环境?
在开发过程中, 当需要使用python
的某些工具包/框架时需要联网安装
- 比如联网安装Flask框架
flask-0.10.1
版本
sudo pip install flask==0.10.1
提示:使用如上命令, 会将flask-0.10.1
安装到/usr/local/lib/python2.7/dist-packages
路径下
问题:如果在一台电脑上, 想开发多个不同的项目, 需要用到同一个包的不同版本, 如果使用上面的命令, 在同一个目录下安装或者更新, 新版本会覆盖以前的版本, 其它的项目就无法运行了.
解决方案 : 虚拟环境
- 作用 :
虚拟环境
可以搭建独立的python运行环境
, 使得单个项目的运行环境与其它项目互不影响. - 所有的
虚拟环境
都位于/home/
下的隐藏目录.virtualenvs
下
如何搭建虚拟环境?
安装虚拟环境的命令 :
sudo pip install virtualenv
sudo pip install virtualenvwrapper
安装完虚拟环境后,如果提示找不到mkvirtualenv命令,须配置环境变量:
# 1、创建目录用来存放虚拟环境
mkdir
$HOME/.virtualenvs
# 2、打开~/.bashrc文件,并添加如下:
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
# 3、运行
source ~/.bashrc
创建虚拟环境的命令 :
- 提示:如果不指定python版本,默认安装的是python2的虚拟环境
-
在python2中,创建虚拟环境
mkvirtualenv 虚拟环境名称 例 : mkvirtualenv py_flask
-
在python3中,创建虚拟环境
mkvirtualenv -p python3 虚拟环境名称 例 : mkvirtualenv -p python3 py3_flask
提示 :
- 创建虚拟环境需要联网
- 创建成功后, 会自动工作在这个虚拟环境上
- 工作在虚拟环境上, 提示符最前面会出现 “虚拟环境名称”
如何使用虚拟环境?
查看虚拟环境的命令 :
workon 两次tab键
</