广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Flask 入门教程
  • 858
分享到

Flask 入门教程

flaskpython后端 2023-10-07 16:10:44 858人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

flask 入门教程 一、Flask简单使用 1、准备环境 硬件:windows 7+python 3.6+安装软件:pycharm安装(社区版)、python环境安装 2、简单的Flask应用 本地

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
  • 多URL的路由
@app.route('/')@app.route('/hello')@app.route('/hello/')def hello(name=None):    if name is None:        name = 'World'    return 'Hello %s' % name
  • Http请求方法常用的有Get, Post, Put, Delete。
    当你请求地址http://localhost:5000/login,”GET”和”POST”请求会返回不同的内容,其他请求方法则会返回405错误。
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
可以考虑换成:

  • pywsgi服务器使用的是gevent的pywsgi模块,性能不错,配置也很简单,它是把单线程改造成了单线程异步方式(兼容各种环境,配合Nginx转发,线上应该够用了)
    图7
  • uWSGI性能最好,配置稍微比上面难一点,但是它是支持多进程、多线程、和多协程的方式(Windows的环境不支持,网上的手动安装教程都不大行,我就不演示了)

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常用扩展包

  • flask_sqlalchemy:操作数据库
  • flask_migrate:管理迁移数据库
  • flask_apscheduler:定时器;
  • flask_restful:开发REST api的工具;
  • flask_cors: 简单解决跨域问题;
  • gevent:正式部署使用的服务;

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

--结束END--

本文标题: Flask 入门教程

本文链接: https://www.lsjlt.com/news/424645.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Flask 入门教程
    Flask 入门教程 一、Flask简单使用 1、准备环境 硬件:Windows 7+python 3.6+安装软件:pycharm安装(社区版)、python环境安装 2、简单的Flask应用 本地...
    99+
    2023-10-07
    flask python 后端
  • Flask入门
    本文参考博客:https://blog.csdn.net/xiaoyuan511t=1 Flask是轻量级的Web开发框架,只具备基本的核心内容-->视图和路由,其他的功能都需要第三方或者自己手写 建立第一个Flask程序 pip...
    99+
    2023-01-31
    入门 Flask
  • python中的flask框架Jinja 模板入门教程
    目录1、快速体验2、Flask 最小 DEMO3、模板继承4、Super Blocks5、Macros6、自定义过滤器7、结论Flask 和 Django 附带了强大的 Jinja ...
    99+
    2022-11-10
  • Python Flask入门
    目录主页分析代码:修改视图函数返回值修改URL规则修改视图函数名总结追溯到最初,Flask 诞生于 Armin Ronacher 在 2010 年愚人节开的一个玩笑。后来,它逐渐发展...
    99+
    2022-11-12
  • Flask简介&入门
    1 了解框架 Flask作为Web框架,它的作用主要是为了开发Web应用程序。那么我们首先来了解下Web应用程序。Web应用程序 (World Wide Web)诞生最初的目的,是为了利用互联网交流工作文档。   1.1 一切从客户端发起...
    99+
    2023-01-31
    入门 简介 Flask
  • flask入门补充
      在上篇文章提到了json的编码问题。那么Flask是国外开发的框架,没有考虑到中文编码,那么我们就需要自己配置   那么在访问页面的时候会有 get 请求和post  请求。在下边我也会提到。以及没有接触过编程的,我会推荐一个软件, ...
    99+
    2023-01-30
    入门 flask
  • Flask入门第三天
      一、数据库操作   1,orm orm(object-Relation Mapping),对象-关系映射,主要实现模型对象到关系数据库数据的映射。 优点: - 只需要面向对象编程, 不需要面向数据库编写代码. - 对数据库的操作...
    99+
    2023-01-31
    门第 Flask
  • ECMAScript6入门教程
    目录你的浏览器支持ES吗?ES 6 新特性汇总(一图全览)1. let、const 和 block 作用域2. 箭头函数(Arrow Functions)3. 函数参数默认值4. S...
    99+
    2022-11-13
  • maven3 入门教程
    Maven库: http://repo2.maven.org/maven2/ Maven依赖查询: http://mvnrepository.com/ Maven常用命令:  1. 创建Maven的普通java项目:  ...
    99+
    2023-01-31
    入门教程
  • Navicat入门教程
    本篇内容主要讲解“Navicat入门教程”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Navicat入门教程”吧!一、 连接使用 1.1 连接数据库打...
    99+
    2022-10-18
  • node.js入门教程
    Node是个啥?   写个东西还是尽量面面俱到吧,所以有关基本概念的东西我也从网上选择性的拿了些下来,有些地方针对自己的理解有所改动,对这些概念性的东西有过了解的可选择跳过这段。   1.Node 是一个服...
    99+
    2022-06-04
    入门教程 node js
  • Jmeter入门教程
    目录一、下载二、安装三、运行四、一个简单的压测实例五、如何查看系统负载何性能瓶颈jemter简介 jmeter是apache公司基于java开发的一款开源压力测试工具,体积小,功能全...
    99+
    2022-11-12
  • HTML5 入门教程
    本篇内容主要讲解“HTML5 入门教程”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“HTML5 入门教程”吧!JavaScript作为一种弱类型语言,最大的特点就是动态类型。也就是说不用提前声明...
    99+
    2023-06-09
  • ECharts入门教程
    Echart 官网:https://echarts.apache.org/zh/index.html下载页面:https://echarts.apache.org/zh/downlo...
    99+
    2022-11-13
  • IPv6入门教程
    本篇文章主要从基础概念、IPv6的相关网络工具、关于移动应用在IPv6和IPv4网络环境中自动降级机制的研究等三个方面介绍了IPv6的入门教程。前言众所周知,32位的IPv4地址已经基本耗尽(这里的耗尽只是说的分配完了,实际上有相当一部分并...
    99+
    2023-06-03
  • Lighttpd入门教程
    Lighttpd入门教程 概述入门教程安装配置静态文件服务动态文件服务 虚拟主机SSL启动服务器日志模块总结lighthttpd使用场景和原理使用场景原理 概述 Lightt...
    99+
    2023-09-04
    服务器 linux ubuntu
  • Python Flask入门之模板
    目录模板基本语法 编写主页模板 准备虚拟数据 渲染主页模板 总结在一般的 Web 程序里,访问一个地址通常会返回一个包含各类信息的 HTML 页面。因为我们的程序是动态的,页面中的某...
    99+
    2022-11-12
  • Flask入门很轻松 (一)
    转载请在文章开头附上原文链接地址:https://www.cnblogs.com/Sunzz/p/10956837.html Flask诞生于2010年,是Armin ronacher(人名)用 Python 语言基于 Werkzeug ...
    99+
    2023-01-31
    入门 轻松 Flask
  • Flask入门很轻松 (二)
    转载请在文章开头附上原文链接地址:https://www.cnblogs.com/Sunzz/p/10959454.html 在客户端和服务器交互的过程中,有些准备工作或扫尾工作需要处理,比如: 在请求开始时,建立数据库连接; 在请求...
    99+
    2023-01-31
    入门 轻松 Flask
  • Python入门教程(二)
      今天讲编程思维。  可能这对初次接触编程的人有用——我不是不想切入正题,我只是想强调根本没什么正题,我可能在其他文章里提过这一点。“编程语言就是语法糖”,可能你不知道什么是语法糖,但是知道的人也未必认同我。我不保证你们能听懂……pyth...
    99+
    2023-01-31
    入门教程 Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作