Flask框架:简介和创建虚拟环境
Flask框架简介
简介
Flask诞生于2010年,是Armin ronacher(人名)用Python语言基于Werkzeug工具箱编写的轻量级Web开发框架。它主要面向需求简单的小应用。
Flask本身相当于一个内核,其他几乎所有的功能都要用到扩展(邮件扩展Flask-Mail,用户认证Flask-Login),都需要用第三方的扩展来实现。比如可以用Flask-extension加入ORM、窗体验证工具,文件上传、身份验证等。
Flask没有默认使用的数据库,你可以选择MySQL,也可以用NoSQL。其 WSGI 工具箱采用 Werkzeug(路由模块) ,模板引擎则使用 Jinja2 。
可以说Flask框架的核心就是Werkzeug和Jinja2。
Python最出名的框架要数Django,此外还有Flask、Tornado等框架。虽然Flask不是最出名的框架,但是Flask应该算是最灵活的框架之一,这也是Flask受到广大开发者喜爱的原因。
框架的轻重
- 重量级的框架:为方便业务程序的开发,提供了丰富的工具、组件,如Django
- 轻量级的框架:只提供Web框架的核心功能,*、灵活、高度定制,如Flask、
明确Web开发的任务
- 视图开发:根据客户端请求实现业务逻辑(视图)编写
- 模板、数据库等其他的都是为了帮助视图开发,不是必备的
Flask与Django对比
django提供了:
-
django-admin
快速创建项目工程目录 -
manage.py
管理项目工程 -
orm
模型(数据库抽象层) -
admin
后台管理站点
…
而这些,flask只有路由,其他都需要扩展包来提供
Flask扩展包:
-
Flask-SQLalchemy
:操作数据库; -
Flask-migrate
:管理迁移数据库; -
Flask-Mail
:邮件; -
Flask-WTF
:表单; -
Flask-script
:插入脚本; -
Flask-Login
:认证用户状态; -
Flask-RESTful
:开发REST API的工具; -
Flask-Bootstrap
:集成前端Twitter Bootstrap框架; -
Flask-Moment
:本地化日期和时间;
创建虚拟环境
在这里简单的对virtualenv进行一下简单的介绍, 沙箱(Sandboxie),这里指的就是一个独立(相对)的开发环境,给我们作为开发的环境,让我们进行操作。这样,我们在同一台电脑上可以开始进行多个版本的Django开发,而且不用担心会有版本混淆的问题,而且可以很清楚看到我们安装的包,使用的包。
创建步骤有:
- 首先要创建一个文件夹,比如
flask
- 切换到要使用虚拟环境的目录。将下面的一段文件创建为
requirements.txt
文件放到flask
的文件夹内
alembic==0.9.4
amqp==2.2.2
billiard==3.5.0.3
celery==4.1.0
certifi==2017.7.27.1
chardet==3.0.4
Flask
Flask-Migrate==2.1.0
Flask-Script==2.0.5
Flask-Session==0.3.1
Flask-SQLAlchemy==2.2
Flask-WTF==0.14.2
idna==2.5
itsdangerous==0.24
Jinja2==2.9.6
kombu==4.1.0
Mako==1.0.7
MarkupSafe==1.0
MySQL-python==1.2.5
olefile==0.44
Pillow==4.2.1
pycryptodome==3.4.7
python-alipay-sdk==1.4.0
python-dateutil==2.6.1
python-editor==1.0.3
pytz==2017.3
qiniu==7.1.4
redis==2.10.5
requests==2.18.3
six==1.10.0
SQLAlchemy==1.1.12
urllib3==1.22
vine==1.1.4
Werkzeug==0.12.2
WTForms==2.1
- 执行
shift+右击
进入命令行,输入:python -m venv venv(虚拟环境目录名称可以任意)
,创建完成
- **虚拟环境
进入venv/Scrpts
目录下执行activate.bat
批处理进行**
- 切换到flask目录下 ,然后再命令行输入
pip install -r D:\djangoworkspace\flask \requirements.txt
- 然后再
flask
目录下创建一个文件夹demo
,然后再pycharm中打开demo
一键导出环境选中的所有模块 pip freeze > 路径\文件名称