【Python的第三方库】flask

1. Flask是什么?

基于python的web后端开发轻量级框架; 基于MVT设计模式即Models,Views,Templates(html+模板语言)

2.中文文档:

https://dormousehole.readthedocs.io/en/2.1.2/index.html

3.依赖3个库:

  • Jinja2 模版:静态html+模版语言{% %}
  • Werkzeug
  • WSGI工具集

4.Flask的整体流程

主要作用:

  • 服务支持,让浏览器可以访问到代码(Flask对象运行起来,其他用户输入url可以访问服务)
  • 接收请求,接收浏览器的数据,并处理(跳转到对应的视图函数处理)
  • 响应结果 ,处理完结果后,给予用户响应(return 处理结果)

5.Flask整体框架结构

  • 文件下有三层:
    *

    app.py,以下是整体结构
    复制代码
    ###### 步骤1:导入Flask模块
    from flask import Flask,render_template
    复制代码
    ###### 步骤2:创建Flask后端服务对象
    app = Flask(__name__)
    复制代码
    ###### 浏览器请求到服务端,进入对应的路由,访问路由绑定的视图函数即path与视图
      路由

      |---------|----------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
      | | 是否带参 | 示例 |
      | path | 无参 | 场景1: @app.route('/index') def index(): return 字符串/json/模版渲染 |
      | path | 无参 | 场景2: 查询传参更加灵活 客户端请求path可能是**/index?page=2** @app.route('/index') def index(): # 获取到参数page的值2 page = requests.arg.get("page",default=1,type=int) return 字符串/json/模版渲染 |
      | path | | 场景3: 客户端是输入框且type=text的,name=x @app.route('/index') def index(): page = requests.arg.get("name") return 字符串/json/模版渲染 |
      | path | 有参 | (1) int @app.route('/index/<bog_id>') def index(blog_id): return f"您的博客id是:{blog_id}" (2)string (3)float (4)path (5)uuid (6)any(选项1,选项2,选项3) 从列出的项目中选择一个 /xx/<any():fruit>/ |
      | methods | 默认是get | |
      | methods | 想要支持post | @app.route('/index',methods = 'GET',"POST) def index(): return 字符串/json/模版渲染 |

      视图
    复制代码
    ###### 启动后端服务
    
    * 可选参数1: debug
      * 作用:
        * 热加载,修改代码后不用手动重启服务
        * 可以将错误信息输出在浏览器上
    * 可选参数2: host
      * 默认是127.0.0.1,则仅可自己访问到flask项目
      * 修改为0.0.0.0,则其他ip地址均可访问到flask项目
      * 比如我的ip地址是: 198.168.2.92,端口是8000,则客户端可通过输入198.168.2.92:8000访问我的flask项目
    * 可选参数3: port
      * Flask的默认端口:5000,可能已经被别人使用,所以需要修改port
        *
    
              if __name__ == '__main__':
                 
                  app.run(debug=True,host='0.0.0.0',port=8000)  
    static文件夹
    templates文件夹
    复制代码
    ###### index.html
    
    * jinja2模版[https://blog.csdn.net/weixin_46697247/article/details/137351512](https://blog.csdn.net/weixin_46697247/article/details/137351512 "https://blog.csdn.net/weixin_46697247/article/details/137351512")
    * 如何渲染到前端呢?
      * 在app.py文件里面视图函数return
      *
    
            @app.route('/blog')
            def blog():
                return render_template('index.html',html里面使用的变量名=值)

6.request

  • 服务器在接收到客户端的请求后,由Flask框架自动创建,request对象不可修改
  • 作用:获取客户端传来的参数值
  • 导入: from flask import request

7.response

  • 作用:返回给客户端的数据

8.项目实战

相关推荐
学逆向的12 分钟前
C 枚举变量
c语言·开发语言·网络安全
Sakura_j_h_23 分钟前
Python 在定时任务里输出 emoji,UnicodeEncodeError 从哪来
开发语言·字符编码·windows·python·定时任务
supabc1232 小时前
欧盟电子发票(XRechnung/Peppol/ZUGFeRD)踩坑记:用 Python 不装 Java 跑官方校验规则
xml·python·开源·电子发票·1024程序员节
ZhengEnCi2 小时前
AI Agent工具调用防护层怎么写-一份能直接跑的Python四层拦截实现
python·llm·agent
ZhengEnCi2 小时前
AI Agent工具误调用怎么解决-从参数校验到高危二次确认的四层工程防线
python·llm·agent
镜子AI4 小时前
镜子AI工程教程:用Python实现关键词布局检查器与语义改写查重(附完整代码)
人工智能·python·microsoft
小oo呆5 小时前
【学习心得】Python协程
python
信誓旦旦的程序猿5 小时前
【Python量化实战宝典 #22】涨跌停、连板情绪手册:情绪指标构建(Python 可跑)
python·1024程序员节·股票数据api·股票数据api接口·股票api数据接口·股票量化数据api·股票量化数据接口
gCode Teacher 格码致知5 小时前
Pandas教学-21:subplots的使用
python·pandas·1024程序员节
2601_967980115 小时前
Python开发的顶级开源项目全景图:2025-2026年生态概览
python·机器学习·开源项目·数据科学·生态概览