快速上手Flask(一) 认识框架Flask、项目结构、开发环境
文章目录
- 快速上手Flask(一) 认识框架Flask、项目结构、开发环境
- Web开发轻量级框架Flask
- Flash历史和团队
- Pallets 项目
- flask运行过程
- 使用flask的场景
- 使用PyCharm快速创建一个Flask项目
快速上手Flask(一) 认识框架Flask、项目结构、开发环境
Web开发轻量级框架Flask
github: https://github.com/pallets/flask
官网: https://flask.palletsprojects.com/en/2.1.x/
官方文档:https://flask.net.cn/installation.html#installation
Python最出名的框架要数Django,此外还有Flask、Tornado等框架。虽然Flask不是最出名的框架,但是Flask应该算是最灵活的框架之一,这也是Flask受到广大开发者喜爱的原因。
Flask是一个相对于Django而言轻量级的Web框架。
Flask本身相当于一个内核,其他几乎所有的功能都要用到扩展(邮件扩展Flask-Mail,用户认证Flask-Login),都需要用第三方的扩展来实现。其 WSGI 工具箱采用 Werkzeug(路由模块),模板引擎则使用 Jinja2。这两个也是Flask框架的核心。
扩展列表:http://flask.pocoo.org/extensions/
Flask is a web framework for Python, based on the Werkzeug toolkit.
Flash历史和团队
flask的诞生于2010年的愚人节,本来它只是作者无意间写的一个小玩具,没想到它却悄悄流行起来了。漫长的8年时间,flask一直没有发布一个严肃的正式版本,但是却不能阻挡它成了github上最受好评的Python Web框架。
flask内核内置了两个最重要的组件,所有其它的组件都是通过易扩展的插件系统集成进来的。这两个内置的组件分别是werkzeug和jinja2。
Pallets 项目
官方:https://palletsprojects.com/
The Pallets Projects are a collection of Python web development libraries that are associated with the Flask microframework as originally developed by Armin Ronacher. Today the Pallets Projects are a community-driven organization with the goal to maintain and improve these libraries.
Pallets 项目是Python Web开发库的集合,这些库与Armin Ronacher最初开发的Flask 框架相关。如今,Pallets 项目是一个由社区驱动的组织,其目标是维护和改善这些库。
Pocoo团队的成员来自Python社区,统一以Pocoo的名义参与多个Python库和应用的开发工作。团队由Georg Brandl和Armin Ronacher领导。
Pocoo团队开发了许多广受欢迎的项目,其中包括:
- Flask微网络开发框架
- Jinja2模板引擎
- Pygments语法高亮包
- Sphinx文档处理器
- Werzeug WSGI工具集
flask运行过程
django与flask都是实现了WSGI协议
flask用的werkzeug来wsgi进行了封装,werkzeug是用run_simple(‘localhost’, 4000, hello) 第一个是ip,第二个是项目启动端口,第三个是可执行对象,当请求wsgi,就会调用第三个参数
Web服务器会把来自客户端的所有请求都交给Flask程序实例。
程序实例使用Werkzeug来做路由分发(URL请求和视图函数之间的对应关系)。
根据每个URL请求,找到具体的视图函数并进行调用。
Flask调用视图函数后,可以返回两种内容:
- 字符串内容:将视图函数的返回值作为响应的内容,返回给客户端(浏览器)。
- HTML模版内容:获取到数据后,把数据传入HTML模板文件中,模板引擎负责渲染HTTP响应数据,然后返回响应数据给客户端(浏览器)。
使用flask的场景
它主要面向需求简单,项目周期短的小应用。Flask入门非常的简单,并可以通过扩展来增加其他的功能。
使用PyCharm快速创建一个Flask项目
如何使用PyCharm快速创建一个Flask项目
参考URL: https://blog.csdn.net/xili1342/article/details/125610684
1)创建一个新的Flask项目
File–>New Project 选择flask:
创建的文件夹里有自动包含以下:
刚起步的时候 Flask 有许多带有合理缺省值的配置值和惯例。按照惯例, 模板和静态文件存放在应用的 Python 源代码树的子目录中,名称分别为 templates 和 static 。
static目录:静态文件
templates目录:模板
venv目录: 虚拟Python环境,在虚拟环境里用pip安装的包都会安装到当前的虚拟环境中
app.py文件:
一个最小的应用app.py
from flask import Flask# Flask函数接收一个参数name,它会指向程序所在的模块
app = Flask(__name__)#装饰器的作用是将路由映射到视图函数
@app.route('/')
def hello_world():return 'Hello World!'if __name__ == '__main__':# Flask应用程序实例的run方法启动WEB服务器app.run()
首先我们导入了 Flask 类。 该类的实例将会成为我们的 WSGI 应用。
接着我们创建一个该类的实例。第一个参数是应用模块或者包的名称。如果你使用 一个单一模块(就像本例),那么应当使用 name ,因为名称会根据这个 模块是按应用方式使用还是作为一个模块导入而发生变化(可能是 ‘main’ , 也可能是实际导入的名称)。这个参数是必需的,这样 Flask 才能知道在哪里可以 找到模板和静态文件等东西。 更多内容详见 Flask 文档。
然后我们使用 route() 装饰器来告诉 Flask 触发函数的 URL 。
函数名称被用于生成相关联的 URL 。函数最后返回需要在用户浏览器中显示的信息。
2)项目启动
Pycharm 点击run运行
使用命令行运行app.py
python app.py
使用flask命令运行
现在通过设定环境变量 FLASK_APP=app.py 来表示将要运行的应用是哪个,然后运行 flask run 来启动该应用。
flask run
指定IP及端口:
flask run --host=0.0.0.0 --port= 8001
或:
flask run -h 0.0.0.0 -p 8001
快速上手Flask(一) 认识框架Flask、项目结构、开发环境相关推荐
- BG-UI,一个可以快速上手的后台UI框架
BG-UI,一个可以快速上手的后台UI框架 1.简述 此项目为后台UI框架,并根据url中的hash提供简单的路由功能,页面的数据渲染依然交给服务器端. UI基于BootStrap3.兼容移动端.兼容 ...
- 基于 next.js + mdx 搭建组件库文档项目(一) -- 开发环境搭建
说明 之前使用过 Docz 来作为组件库文档搭建工具,它基于 gatsby , 提供了高度的定制化能力,但是截止 2021-06-22, Docz 停留在 v2.3.1(2020-04-05) 已经一 ...
- 用Docker搭建Laravel和Vue项目的开发环境
在这篇文章中我们将通过Docker在个人本地电脑上构建一个快速.轻量级.不依赖本地电脑所安装的任何开发套件的可复制的Laravel和Vue项目的开发环境(开发环境的所有依赖都安装在Docker构建容器 ...
- Docker java项目发布/开发环境搭建
Docker java项目发布/开发环境搭建 线上部署项目/开发环境搭建命令大全 关闭windows10 指定应用 安装Docker 安装 docker-compose 关于docker容器导致硬盘耗 ...
- github上的优秀项目和开发环境配置【转http://www.cnblogs.com/2018/archive/2012/11/09/2763119.html】...
github上的优秀项目和开发环境配置 国外的几个公司开放的资源 https://github.com/google https://github.com/facebook https://git ...
- vue-webpack项目本地开发环境设置代理解决跨域问题
vue-webpack项目本地开发环境设置代理解决跨域问题 参考文章: (1)vue-webpack项目本地开发环境设置代理解决跨域问题 (2)https://www.cnblogs.com/xyyt ...
- 如何完整的搭建一个项目的开发环境?
本章节主要说的是如何完整的搭建一个项目的开发环境 一.安装vue脚手架 首先创建一个文件夹并且在本文件夹的黑窗口(cmd命令进入)安装Vue的脚手架,使用:cnpm i -g @vue/cli 命令进 ...
- Hadoop+hive+flask+echarts大数据可视化项目之hive环境搭建与系统数据的分析思路
Hadoop+hive+flask+echarts大数据可视化项目(四) --------------hive环境搭建与系统数据的分析思路---------------- 关注过Hadoop+hive ...
- 基于Flask的微电影管理1(项目结构、引入蓝图)
我们为了使得整个项目更便于查看,引入蓝图. 项目结构 . ├── app # Flask程序一般都保存在名为 app 的包中 │ ├── admin │ │ ├── forms │ │ │ └── _ ...
最新文章
- 梁建章的多米诺,混合办公的未知数
- nodejs express使用node-xlsx实现文件的上传下载导入导出
- 一文说通异步 LINQ
- Guice之Servlet基础
- 现代软件工程 教学计划 中国科学技术大学-微软亚洲研究院联合培养班
- 阿里云定时任务并自动释放
- 茱莉亚分形_茱莉亚的NaN Constant
- .net fileupload批量上传可删除_【JavaWeb基础】文件上传和下载(修订版)
- web容器 ejb容器_容器实用指南
- 借助FLASH技术美化VBA操作界面
- 2.4gwifi最高下载速度_2.4G+5G双频合一的路由器速度会更快?看完后才知道还好没上当...
- 学习jQuery.Deferred
- 前端数据可视化插件(四)关系图
- 一个文献代理和医学资料非常丰富的地方
- SRE(运维工程师)成长路上的十本书籍推荐
- 违反唯一约束条件oracle,oracle imp遇到违反唯一约束条件 (GZW.SYS_C006112)
- 概率论基础 —— 1. 基本事件类型、运算规则,及古典概型与几何型概型
- 内部存储器分区 android,Android的存储器类型(RAM V内部存储器)
- C++ 快读快输模板
- List 之按照中文拼音首字母排序