简单了解Flask
Flask属于小型Web开发框架,只要熟练使用,读懂它的源码都不是问题。
麻雀虽小五脏俱全,flask由一个核心(Werkzeug和Jinjia2)+可扩展特性组成,让使用者完全可以根据自身需求构建出属于自己的一个架构。核心都是由Flask的核心开发者开发。
对于一个完整的系统架构来说,与数据库的交互是必不可少的。可惜,目前的Flask并不原生支持数据库访问、Web表单验证和用户认证等高级功能。这些功能以及其它大多数Web程序中需要的核心服务都以扩展的形式实现,然后再与核心包集成。这个和大型框架的思路相反,大框架往往都已替你规划好了各种功能的实现方式,难以甚至不能自定义。
安装和使用Flask
安装Flask最便捷的方式是使用虚拟环境。虚拟环境是Python解释器的一个私有副本,在这个环境中你可以安装私有包,且不影响系统中安装的全局Python解释器。
虚拟环境非常有用,可避免包的混乱和版本的冲突。为每个程序单独创建虚拟环境可以保证程序只访问虚拟环境中的包,从而保持全局解释器的干净、整洁。另外,使用虚拟环境还不需要管理员权限。
虚拟环境是通过第三方工具virtualenv创建,可通过命令virtualenv --version查看是否成功安装:
C:\Users\Jochen>virtualenv --version
16.6.1
python 3.3通过venv模块原生支持虚拟环境,命令为pyvenv。pyvenv可以替代virtualenv。不要要注意的是,Python3.3中使用pyvenv命令创建的虚拟环境不包括php,你需要手动安装pip。Python3.4改进了这一缺陷,pyvenv完全可以替代virtualenv.
大多数Linux发行版都提供了virtualenv包。例如,Ubuntu用户可以使用下述命令安装它:
$sudo apt-get install python-virtualenv
对于Mac OS X系统,可通过easy_install安装virtualenv:
$sudo easy_install virtualenv
如果你使用微软的Windows系统或者其它没有官方virtualenv包的操作系统,那么安装过程会复杂一点。
在浏览器中输入网址https://bitbucket.org/pypa/setuptools,回车后会进入setuptool安装程序的主页。在这个页面中找到下载安装脚本的链接,脚本名称为ez_setuppy。把这个文件保持到电脑的一个临时文件中,然后在这个文件夹中执行以下命令:
$python ez_setup.py
$easy_install virtualenv
上述命令必须以具有管理员权限的用户身份执行。在微软Windows系统中,请使用“以管理员身份运行”选项打开命令行窗口;在基于Unix的系统中,要在上面的两个命令前加上sudo,或者以根用户(root)身份执行。一旦安装完成,virtualenv实用工具就可以从常规账号中调用。
笔者这里在自己电脑(windows系统)的f盘根目录创建了一个名为flask的文件夹,然后打开cmd命令提示符,切换到创建的文件夹中
C:\Users\Jochen>cd /d f:\flask
f:\flask>
接下来使用virtualenv命令在flask文件夹中创建Python虚拟环境。这个命令只有一个必须的参数,即虚拟环境的名字。创建虚拟环境后,当前文件夹中会出现一个子文件夹,名字就是上述命令中指定的参数,与虚拟环境相关的文件都保存在这个子文件夹中。按照惯例,一般虚拟环境会被命名为venv:
F:\flask>virtualenv venv
Using base prefix 'd:\\program files\\python\\stackless37'
New python executable in F:\flask\venv\Scripts\python.exe
Installing setuptools, pip, wheel...
done.
现在,flask文件夹中就有了一个名为venv的子文件夹,它保存一个全新的虚拟环境,其中有一个私有地Python解释器。在使用这个虚拟环境之前,你需要先将其“激活”。如果你使用的bash命令行(Linux和Mac OS X用户),可以通过下面的命令激活这个虚拟环境:
$source venv/bin/active
如果使用微软Windows系统,激活命令是:
$venv\Scripts\activate
虚拟环境被激活后,其中Python解释器的路径就被添加进PATH中,但这种改变不是永久性的,它只会影响当前的命令行会话。为了提醒你已经激活虚拟环境,激活虚拟环境的命令会修改命令行提示符,加入环境名:
(venv) F:\flask>
当虚拟环境中的工作完成后,如果你想回到全局Python解释器中,可以在命令行提示符下输入deactivate。
使用pip安装Python包
大多数Python包都使用pip实用工具安装,使用virtualenv创建虚拟环境时会自动安装pip。激活虚拟环境后,pip所在的路径会被添加进PATH。
如果你在Python 3.3中使用pyvenv创建虚拟环境,那就需要手动安装pip。安装方法参加pip的网址(https://pip.pypa.io/en/latest/installing.html)。在Python 3.4中,pyvenv会自动安装pip。
执行下述命令可在虚拟环境中安装Flask:
(venv) F:\flask>pip install flask
Collecting flask
Using cached Flask-1.1.1-py2.py3-none-any.whl (94 kB)
Collecting Werkzeug>=0.15
Downloading Werkzeug-1.0.0-py2.py3-none-any.whl (298 kB)
|████████████████████████████████| 298 kB 34 kB/s
Collecting itsdangerous>=0.24
Using cached itsdangerous-1.1.0-py2.py3-none-any.whl (16 kB)
Collecting click>=5.1
Downloading click-7.1.1-py2.py3-none-any.whl (82 kB)
|████████████████████████████████| 82 kB 4.4 kB/s
Collecting Jinja2>=2.10.1
Downloading Jinja2-2.11.1-py2.py3-none-any.whl (126 kB)
|████████████████████████████████| 126 kB 5.0 kB/s
Collecting MarkupSafe>=0.23
Using cached MarkupSafe-1.1.1-cp37-cp37m-win_amd64.whl (16 kB)
Installing collected packages: Werkzeug, itsdangerous, click, MarkupSafe, Jinja2, flask
Successfully installed Jinja2-2.11.1 MarkupSafe-1.1.1 Werkzeug-1.0.0 click-7.1.1 flask-1.1.1 itsdangerous-1.1.0
看到上述安装输出信息没有中断,且提示Successfully installed说明flask和其依赖的组件(包)已安装完成。通过pip list可以看到安装了哪些组件:
(venv) f:\flask>pip list
Package Version
------------ -------
click 7.1.1
Flask 1.1.1
itsdangerous 1.1.0
Jinja2 2.11.1
MarkupSafe 1.1.1
pip 20.0.2
setuptools 46.0.0
Werkzeug 1.0.0
wheel 0.34.2
其中,pip、setuptools、wheel环境自带的,其它的都是安装flask时一并安装的。可以看到,安装flask的同时也安装了Werkzeug和Jinja2,后边的开发将会围绕这两个组件展开。
想要验证是否正确安装,可以启动Python解释器,尝试导入Flask:
(venv) F:\flask>python
Python 3.7.3 Stackless 3.7 (v3.7.3-slp:4a7e31953c, Apr 8 2019, 23:19:38) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> import flask
>>>
如果没有看到任何错误输出,说明Flask的开发环境已经部署完成,接下来可以学习如何开发第一个Web程序了。
联系客服