一、Flask简介
Flask诞生于2010年,是用Python语言基于Werkzeug工具箱编写的轻量级Web开发框架。
Flask本身相当于一个内核,其他几乎所有的功能都要用到扩展(邮件扩展Flask-Mail,用户认证Flask-Login) ,都需要用第三方方的扩展来实现。
其WSGI 工具箱采用 Werkzeug (路由模块),模板引擎则使用Jinja2。这两个也是Flask框架的核心。
Python最出名的框架要数Django,此外还有Flask、Tornado等框架。虽然Flask不是最出名的框架,但是Flask应该算是最灵活的框架之一,这也是Flask受到广大开发者喜爱的原因。
Flask常用扩展包:
- Flask-SQLalchemy:操作数据库;
- Flask-migrate:管理迁移数据库;
- Flask-Mail:邮件;
- Flask-WTF:表单;
- Flask-Bable:提供国际化和本地化支持,翻译;
- Flask-script:插入脚本;
- Flask-Login:认证用户状态;
- Flask-OpenID:认证;
- Flask-RESTful:开发RESTAPI的工具;
- Flask-Bootstrap:集成前端Twitter Bootstrap框架;
- Flask-Moment:本地化日期和时间;
- Flask-Admin:简单而可扩展的管理接口的框架
扩展列表:http://flask.pocoo.org/extensions/
1.中文文档(http://docs.jinkan.org/docs/flask/)
2.英文文档(http://flask.pocoo.org/docs/0.12/
Flask基础扩展包:
一般写个最简单的web站点,我就装个操作表单的Flask-WTF和操作myql数据库的Flask-SQLalchemy就差不多够用了。
二、安装Flask
一般我用虚拟环境安装Flask,可以避免包的混乱和版本的冲突,也不会影响系统中安装的全局Python解释器比较方便。
使用虚拟环境的笔记:VSCode运行Python虚拟环境virtualenv
1.安装Flask
1 | pip install flask |
测试安装是否成功,以代码中加入以下代码,或者直接在ipython中输入后测试:
1 | from flask import Flask |
2.第一个Flask程序
Flask程序运行过程
- 当客户端想要获取资源时,一般会通过浏览器发起HTTP请求。
- 此时,Web服务器会把来自客户端的所有请求都交给Flask程序实例。
- 程序实例使用Werkzeug来做路由分发(URL请求和视图函数之间的对应关系)。
- 根据每个URL请求,找到具体的视图函数并进行调用。
- 在Flask程序中,路由的实现一般是通过程序实例的装饰器实现。
- Flask调用视图函数后,可以返回两种内容:
- 字符串内容:将视图函数的返回值作为响应的内容,返回给客户端(浏览器)
- HTML模版内容:获取到数据后,把数据传入HTML模板文件中,模板引擎负责渲染HTTP响应政据,然后返回响应数据给客户端(浏览器)
代码示例
创建个项目目录,在目录下创建一个app.py文件,内容如下:
1 | # 1.导入Flask扩展 |
运行后会有网址:当前本机的ip地址(局域网ip):端口号(默认5000)
三、安装其它基础扩展包
1.web表单:安装Flask-WTF扩展
web表单是web应用程序的基本功能。
它是HTML页面中负责数据采集的部件。
表单有三个部分组成∶表单标签、表单域、表单按钮。
表单允许用户输入数据,负责HTML页面数据采集,通过表单将用户输入的数据提交给服务器。
在Flask中,为了处理web表单,我们一般使用Flask-WTF扩展,它封装了WTForms,并且它有验证表单数据的功能。
安装:
1 | pip install Flask-WTF |
2.mysql数据库:安装flask-sqlalchemy
SQLALchemy 实际上是对数据库的抽象,让开发者不用直接和SQL语句打交道,而是通过Python对象来操作数据库,在舍弃一些性能开销的同时,换来的是开发效率的较大提升
SQLAlchemy 是一个关系型数据库框架,它提供了高层的ORM和底层的原生数据库的操作。flask-sqlalchemy是一个简化了SQLAlchemy操作的flask扩展。
1 | pip install flask-sqlalchemy |
flask-mysqldb 如果安装失败,提示需要mysql client的话。
用以下方法安装:
1 | Linux(Ubuntu)用命令安装(安装完client再安装就可以了): |
Windows的话,去 https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python 网址下载Mysqlclient对应的whl文件。
然后用pip install mysqlclient-1.3.13-cp34-cp34m-win_amd64.whl
命令安装。
PS.关于这两拓展的具体使用,后面会写更详细的笔记。
3.requirements.txt文件
安装完后,在虚拟环境中,所以可以用pip freeze > requirements.txt
命令生成requirements.txt文件,看一下已经安装的包有哪些,比如我这有这些:
1 | click==8.1.3 |
- 本文标题:Python Flask笔记(一)
- 本文作者:HDUZN
- 创建时间:2022-09-20 21:25:02
- 本文链接:http://hduzn.cn/2022/09/20/Python-Flask笔记(一)/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!