文章目录

  • 快速上手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()
  1. 首先我们导入了 Flask 类。 该类的实例将会成为我们的 WSGI 应用。

  2. 接着我们创建一个该类的实例。第一个参数是应用模块或者包的名称。如果你使用 一个单一模块(就像本例),那么应当使用 name ,因为名称会根据这个 模块是按应用方式使用还是作为一个模块导入而发生变化(可能是 ‘main’ , 也可能是实际导入的名称)。这个参数是必需的,这样 Flask 才能知道在哪里可以 找到模板和静态文件等东西。 更多内容详见 Flask 文档。

  3. 然后我们使用 route() 装饰器来告诉 Flask 触发函数的 URL 。

  4. 函数名称被用于生成相关联的 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、项目结构、开发环境相关推荐

  1. BG-UI,一个可以快速上手的后台UI框架

    BG-UI,一个可以快速上手的后台UI框架 1.简述 此项目为后台UI框架,并根据url中的hash提供简单的路由功能,页面的数据渲染依然交给服务器端. UI基于BootStrap3.兼容移动端.兼容 ...

  2. 基于 next.js + mdx 搭建组件库文档项目(一) -- 开发环境搭建

    说明 之前使用过 Docz 来作为组件库文档搭建工具,它基于 gatsby , 提供了高度的定制化能力,但是截止 2021-06-22, Docz 停留在 v2.3.1(2020-04-05) 已经一 ...

  3. 用Docker搭建Laravel和Vue项目的开发环境

    在这篇文章中我们将通过Docker在个人本地电脑上构建一个快速.轻量级.不依赖本地电脑所安装的任何开发套件的可复制的Laravel和Vue项目的开发环境(开发环境的所有依赖都安装在Docker构建容器 ...

  4. Docker java项目发布/开发环境搭建

    Docker java项目发布/开发环境搭建 线上部署项目/开发环境搭建命令大全 关闭windows10 指定应用 安装Docker 安装 docker-compose 关于docker容器导致硬盘耗 ...

  5. github上的优秀项目和开发环境配置【转http://www.cnblogs.com/2018/archive/2012/11/09/2763119.html】...

    github上的优秀项目和开发环境配置 国外的几个公司开放的资源  https://github.com/google https://github.com/facebook  https://git ...

  6. vue-webpack项目本地开发环境设置代理解决跨域问题

    vue-webpack项目本地开发环境设置代理解决跨域问题 参考文章: (1)vue-webpack项目本地开发环境设置代理解决跨域问题 (2)https://www.cnblogs.com/xyyt ...

  7. 如何完整的搭建一个项目的开发环境?

    本章节主要说的是如何完整的搭建一个项目的开发环境 一.安装vue脚手架 首先创建一个文件夹并且在本文件夹的黑窗口(cmd命令进入)安装Vue的脚手架,使用:cnpm i -g @vue/cli 命令进 ...

  8. Hadoop+hive+flask+echarts大数据可视化项目之hive环境搭建与系统数据的分析思路

    Hadoop+hive+flask+echarts大数据可视化项目(四) --------------hive环境搭建与系统数据的分析思路---------------- 关注过Hadoop+hive ...

  9. 基于Flask的微电影管理1(项目结构、引入蓝图)

    我们为了使得整个项目更便于查看,引入蓝图. 项目结构 . ├── app # Flask程序一般都保存在名为 app 的包中 │ ├── admin │ │ ├── forms │ │ │ └── _ ...

最新文章

  1. 梁建章的多米诺,混合办公的未知数
  2. nodejs express使用node-xlsx实现文件的上传下载导入导出
  3. 一文说通异步 LINQ
  4. Guice之Servlet基础
  5. 现代软件工程 教学计划 中国科学技术大学-微软亚洲研究院联合培养班
  6. 阿里云定时任务并自动释放
  7. 茱莉亚分形_茱莉亚的NaN Constant
  8. .net fileupload批量上传可删除_【JavaWeb基础】文件上传和下载(修订版)
  9. web容器 ejb容器_容器实用指南
  10. 借助FLASH技术美化VBA操作界面
  11. 2.4gwifi最高下载速度_2.4G+5G双频合一的路由器速度会更快?看完后才知道还好没上当...
  12. 学习jQuery.Deferred
  13. 前端数据可视化插件(四)关系图
  14. 一个文献代理和医学资料非常丰富的地方
  15. SRE(运维工程师)成长路上的十本书籍推荐
  16. 违反唯一约束条件oracle,oracle imp遇到违反唯一约束条件 (GZW.SYS_C006112)
  17. 概率论基础 —— 1. 基本事件类型、运算规则,及古典概型与几何型概型
  18. 内部存储器分区 android,Android的存储器类型(RAM V内部存储器)
  19. C++ 快读快输模板
  20. List 之按照中文拼音首字母排序

热门文章

  1. 模压硅胶产品成型后加工工艺
  2. ruoyi-vue集成积木报表
  3. SAS Planet+ArcGIS
  4. Android神笔之Paint
  5. Mysql报错 Cannot delete or update a parent row: a foreign key constraint fails
  6. Livid: 消失的未来
  7. 一个很不错的C++类的练习题目
  8. 折腾家里的龟速网络有感
  9. 小程序可以跟哪些行业做结合呢?
  10. 疯狂马斯克:如何带特斯拉走出困境?