文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Flask 入门教程

2023-10-07 16:56

关注

Flask 入门教程

一、Flask简单使用

1、准备环境

2、简单的Flask应用

本地D盘新建一个FlaskDemo的文件夹,使用Pycharm – Open 选择FlaskDemo文件夹打开,在文件夹下右键 new – python File一个文件app.py,文件内容如下:

from flask import Flaskapp = Flask(__name__)@app.route('/')def hello_world():    return 'Hello World!'if __name__ == '__main__':    app.run()

正常来说代码导入后,如下提示:
图1

打开Pycharm下方的Terminal(默认会在当前的项目路径),并输入以下命令。

pip3 install flask -i https://pypi.tuna.tsinghua.edu.cn/simple

(因为我的已经安装,所以页面不相同,保证对应的包安装成功即可)
图5

在对应的Flask的红色下滑线取消后(代表flask模块已经导入),点击对应的绿色倒三角或者Terminal输入以下命令运行app.py:

python app.py

出现以下提示时,代表flask运行起来了:
图2

也可以直接使用专业版的Pycharm新建项目时选择flask项目,会默认生成以上文件并安装好对应的虚拟环境。

二、Flask基本原理

1、Flask简单介绍

百度百科:Flask是一个使用 Python 编写的轻量级 Web 应用框架1,也被称为 “微服务框架” ,因为使用简单的核心( Werkzeug WSGI工具包2、 Jinja2 模板引擎3)且支持插件扩展。

2、Flask简单应用的分析

2.1、导入Flask类

from flask import Flask

Flask类是Flask框架的核心类,它实现了WSGI应用规范。

2.2、创建Flask实例对象

app = Flask(__name__)

创建了一个名为 app 的 Flask 应用程序实例,以当前模块的名称作为应用程序的根目录。后续可以使用这个实例来配置路由、注册插件、定义视图函数等,从而构建一个完整的 Web 应用程序。

__name__的用法:

  • 这是一个 Python 内置变量,表示当前模块的名称。在使用 Flask 创建应用程序时,将其作为 Flask 类的一个参数,以便 Flask 可以确定程序的根目录,从而找到静态文件夹和模板文件夹。
  • 应用程序顶级目录中名为 test.py 的模块中,name 的值为 test。 如果 test.py 模块位于一个名为my_package 的 Python 包中,那么 __name__的值就是 my_package.test。
  • 在应用程序的主模块(运行 Python 解释器的文件)中,name 的值是特殊值__main__

2.3 注册路由

@app.route('/')def hello_world():    return 'Hello World!'

route() 装饰器4告诉 Flask 什么样的URL 能触发我们的函数。

@app.route('/hello/')def hello(name):    return 'Hello %s' % name
@app.route('/user/')def get_user(user_id):    return 'User ID: %d' % user_id
@app.route('/')@app.route('/hello')@app.route('/hello/')def hello(name=None):    if name is None:        name = 'World'    return 'Hello %s' % name
from flask import request@app.route('/login', methods=['GET', 'POST'])def login():    if request.method == 'POST':        return 'This is a POST request'    else:        return 'This is a GET request'

2.4、启动Flask创建的web服务

if __name__ == '__main__':app.run()

只适用于开发模式,因为它是单线程的,生产环境影响性能,替代方案是可以用uWSGI或者pywsgi(而且flask也不建议生产环境使用这个部署方式)
图6
可以考虑换成:

3、核心概念的简单介绍

①Werkzeug WSGI工具箱

werkzeug是Flask使用的底层WSGI库, 实现路由、调试和Web服务器网关接口。(WSGI,全称 Web Server Gateway interface,是为 Python 语言定义的Web服务器和Web应用程序之间的一种简单而通用的接口)。

WSGI将Web服务分成两个部分:服务器和应用程序。WGSI服务器只负责与网络相关的两件事:接收浏览器的HTTP请求、向浏览器发送HTTP应答;而对HTTP请求的具体处理逻辑,则通过调用WSGI应用程序进行。这意味着我们进行Flask开发时,不需要关注网络方面的操作,Flask应用的入口是封装过的网络请求包,出口是 网络响应,我们仅需要关注这个阶段内的处理逻辑。
图3

②Jinja2模板渲染引擎

Jinja2是基于python的模板引擎。它能完全支持unicode,并具有集成的沙箱执行环境,应用广泛。jinja2使用BSD授权)。Jinja2的工作流程如下图所示:
图4

三、Flask的进阶使用和通用库集成

1、Flask常用扩展包

2、简单示例

github: https://github.com/kuang-Wenxiang/FlaskDemo


  1. web应用程序框架表示一个库和模块的集合,使web应用程序开发人员能够编写应用程序,而不必担心协议,线程管理等极地细节。 ↩︎

  2. Web Server Gateway Interface(web服务器网关接口,WSGI),已被用作python web应用程序开发的标准,WSGI是Web服务器和Web应用程序之间通用接口的规范。Werkzeug是一个WSGI工具包,它实现了请求,响应对象和实用函数。Werkzeug是Flask框架基础之一。 ↩︎

  3. Jinja2是Python的一个流行的模板引擎。Web模板系统将模板与特定数据源组合以呈现动态网页。 ↩︎

  4. https://blog.csdn.net/weixin_44992737/article/details/125868592 ↩︎

来源地址:https://blog.csdn.net/qq_36309304/article/details/131116092

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯