Web(World Wide Web)诞生最初的目的,是为了利用互联网交流工作文档。
web网站发展至今,特别是服务器端,涉及到的知识、内容,非常广泛。这对程序员的要求会越来越高。如果采用成熟,稳健的框架,那么一些基础的工作,比如,安全性,数据流控制等都可以让框架来处理,那么程序开发人员可以把精力放在具体的业务逻辑上面。使用框架的优点:
总结一句话: 避 免重复造轮子
Flask诞生于2010年,是Armin ronacher(人名)用 Python 语言基于 Werkzeug 工具箱编写的轻量级Web开发框架。
Flask 本身相当于一个内核,其他几乎所有的功能都要用到扩展(邮件扩展Flask-Mail,用户认证Flask-Login,数据库Flask-
SQLAlchemy),都需要用第三方的扩展来实现。比如可以用 Flask 扩展加入ORM、窗体验证工具,文件上传、身份验证等。Flask
没有默认使用的数据库,你可以选择 MySQL,也可以用 NoSQL。
其 WSGI 工具箱采用 Werkzeug(路由模块),模板引擎则使用 Jinja2。这两个也是 Flask 框架的核心。
Flask 常用扩展包:
扩展列表:http://flask.pocoo.org/extensions/
1. 中文文档( )
2. 英文文档( )
[__](…/shi-tu-ji-lu-you/flaskhuan-jing-an-
zhuang.html)
在开发过程中, 当需要使用python
的某些工具包/框架时需要联网安装
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键
使用虚拟环境的命令 :
workon 虚拟环境名称
例 :使用python2的虚拟环境
workon py_flask
例 :使用python3的虚拟环境
workon py3_flask
退出虚拟环境的命令 :
deactivate
删除虚拟环境的命令 :
rmvirtualenv 虚拟环境名称
例 :删除虚拟环境py3_flask
先退出:deactivate
再删除:rmvirtualenv py3_flask
提示 : 工具包安装的位置 :
~/.virtualenvs/py_flask/lib/python2.7/site-packages/
~/.virtualenvs/py3_flask/lib/python3.5/site-packages
python3版本下安装flask-0.10.1的包 :
pip install 包名称
例 : 安装flask-0.10.1的包
pip install flask==0.10.1
查看虚拟环境中安装的包 :
pip freeze
[__](…/shi-tu-ji-lu-
you/helloworld.html)
Pure Python
类型的项目,创建项目完成之后选择之前创建的 py3_flask
作为虚拟环境第 4 步路径可以通过在指定虚拟环境下,输入
which python
获得
新建文件helloworld.py
导入Flask类
from flask import Flask
Flask函数接收一个参数__name__,它会指向程序所在的包
app = Flask(__name__)
装饰器的作用是将路由映射到视图函数 index
@app.route(‘/’)
def index():
return ‘Hello World’
Flask应用程序实例的 run 方法 启动 WEB 服务器
if name == ‘main’:
app.run()
在程序运行过程中,程序实例中会使用 url_map
将装饰器路由和视图的对应关系保存起来,打印结果如下图:
[__](…/shi-tu-ji-lu-
you/xiang-guan-pei-zhi-can-shu.html)