Python3,使用Flask来实现接口请求

2023-10-31

1 引言

小鱼有一个系列博文,专门使用flask来搭建web项目,不知道各位小伙伴是否还有印象。
如果没有的话,那就不给面了啊~ ~
反正小鱼都要整理,没印象的可以看看这个。

既然已经写过Flask的系列博文,今天为啥还要搞 Flask呢?

据说今天的内容,大厂的面试官都喜欢问…

2 Flask

2.1 flask 的环境安装

老规矩,直接pip方式安装

pip install flask

很简单,如果还是不会的话,直接看小鱼这篇博文 -《Python3,网站搭建之编写API接口,让前端页面展示数据!》,里面有详细的环境安装步骤。

2.2 flask构建web框架

我说7句话,就可以构建一个web框架,你却不信…
那就老规矩,直接上代码

1、编写代码

# -*- coding: utf-8 -*-
# @Author: Carl_DJ
# @Date:   2021-01-15

from flask import Flask,request

app = Flask(__name__)

#设置路由,需要访问的网页,/ 为根目录
@app.route('/')
def index():
	#我们来编写一句,Hello carl_DJ
    return 'Hello carl_DJ'

# 执行app
if __name__ == "__main__":
    app.run()

2、运行结果
在这里插入图片描述

3、网页查看
查看步骤:
①打开浏览器
②输入http://127.0.0.1:5000/
③结果如图

在这里插入图片描述

2.3 flask构建get请求

上面的例子,很简单,那么我们就增加点难度,看看如何调用get请求方式

1、编写代码

# -*- coding: utf-8 -*-
# @Author: Carl_DJ
# @Date:   2021-01-15



from flask import Flask,request

app = Flask(__name__)

#设置路由,需要访问的网页,/ 为根目录,<username>是个变量,也就是输入的值
 @app.route('/check/<username>')
 #定义函数,初始化username = None
 def check_username(username = None):
 	#设置username 的输入值 
     if username == 'admin':
     	#如果输入admin,则返回admin
         return  'username = admin'
         
     elif username == 'superuser':
         return 'username = superuser'
      #如果输入的都不是,则返回None
     else:
         return 'username is None'

#执行
if __name__ == "__main__":
    app.run()

2、运行结果
在这里插入图片描述
没错,就是这么简单。

2.4 flask构建post请求

2.41. 代码编写

既然get都这么简答,那么post还会难吗??
接下来,我们就来搞POST请求。
编写代码

# -*- coding: utf-8 -*-
# @Author: Carl_DJ
# @Date:   2021-01-15



from flask import Flask,request

app = Flask(__name__)



'''POST请求'''
#设置请求方式,这里限定位POST方式
@app.route('/login',methods = ['POSt'])

def login():
	#获取request的方法
    if request.method == 'POST':
    	#把request.data的值从bytes类型转换到str类型
        val = str(request.data,encoding='utf8')
        #打印
        print(val)
		#增加判断条件
        if val.find('admin') ==  -1:
        	#设置返回状态信息
            return 'status 400,Not found user'
        else:
            return 'status 200, Success!'

    else:
        return 'status 403 , need post method!'


#执行
if __name__ == "__main__":
    app.run()


2.4.2 安装RestClient 工具

我们今天来通过RestClient工具构建请求。
1、RestClient 工具安装
①打开Firefox浏览器
②选择添加附件→选择RestClient,并进行安装
在这里插入图片描述

③安装完成后,在Firefox中显示样式
在这里插入图片描述

④启动RestClient
在这里插入图片描述

2.4.3 执行POST请求

1、执行步骤
①执行编写的代码
②在RESTClient的url中输入 http://127.0.0.1:5000/login
③正文中 输入:admin
④点击 发送 按钮

2、响应结果
在这里插入图片描述

3 Flask与Django 的区别

Django与Flaks都是python web开发的主流框架,那区别有哪些:

  • Flask提供了灵活性,简单性和细粒度的控制。
  • Flask不受限制,让你决定如何实现应用程序。
  • Django为我们的Web应用程序开发提供了管理面板,数据库界面,目录结构和ORM的全方位体验。

记住小鱼一句话:Django 是复合型框架,Flask是简易型框架

总结
如果我们的开发轻量级的网站或者某些特定的微服务,直接使用Flask 就可以。
如果我们要开发包含各种功能的传统企业级网站(比如电商,新闻内容管理,社交网站,办公OA),使用Django能帮我们节省不少寻找或开发第三方扩展的精力。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python3,使用Flask来实现接口请求 的相关文章

随机推荐

  • DBSCAN算法的代码实现

    1 读取数据 import pandas as pd data pd read excel 演示数据 xlsx data head 2 数据可视化 import matplotlib pyplot as plt plt scatter da
  • Java 4-5、Mybatis插件快速生成代码

    Mybatis插件快速生成代码 一 pox xml依赖插件
  • MySql常见问题(长期更新 2023.08.23)

    基于mysql 8 0 3版本 2023 08 23 更新 一 忘记root密码 1 1 linux 系统下忘记密码 1 2 Windows 系统下忘记密码 1 3 Unix 和类 Unix 系统 二 账号问题 2 1 远程访问账号设置 三
  • Go语言学习19-样本测试

    样本测试 引言 样本测试 1 编写样本测试函数 2 样本测试的运行 3 样本测试函数的命名 结语 引言 上一篇笔者介绍了 Go 语言的 基准测试 其实在测试源码文件中还可以添加样本测试函数 但编写样本测试函数不需要使用 testing 代码
  • 容器生命周期回调(Pod 优雅退出)

    容器生命周期回调 Pod 优雅退出 Kubernetes提供了容器生命周期钩子 在容器的生命周期的特定阶段执行调用 比如容器在停止前希望执行某项操作 就可以注册相应的钩子函数 目前提供的生命周期钩子函数如下所示 启动后处理 PostStar
  • 传智播客技术社区_播客与网络技术的未来

    传智播客技术社区 Episode zero We recorded a test episode of The Versioning Show and had so much fun doing it we thought we d mak
  • WebGL简易教程(十五):加载gltf模型

    目录 1 概述 2 实例 2 1 数据 2 2 程序 2 2 1 文件读取 2 2 2 glTF格式解析 2 2 2 1 场景节点 2 2 2 2 网格 2 2 2 3 缓冲 缓冲视图和访问器 2 2 2 4 纹理材质 2 2 3 初始化顶
  • Qt 为.h和.cpp文件添加ui文件

    假设在工程中已经有了一个纯类A的头文件a h和源文件a cpp 现在想给这个纯类文件添加UI 可以通过以下操作来实现 给工程添加一个和类同名的UI文件a ui 在a cpp中添加UI的头文件 头文件的名字应该形如ui xxx h 但在添加时
  • Composer警告Warning:This development build of composer is over 60 days old......

    今天查看了一下服务器安装的Composer版本 报了一个警告 意思是安装已经超过60天了 需要执行 usr bin composer self update 升级到最新版本 然后我就执行了 再次查看版本确实更新到官方最新的1 7 3版本 但
  • IDEA自动补全返回值的快捷键

    首先 将光标移至方法的末尾 然后 使用 ctrl alt v 示例 补全以前 discoveryClient getServices 补全以后 List
  • 模板方法(template method)c++版本

    大话设计模式中的template method c 版本 template method cpp Created on Jul 24 2017 Author clh01s 163 com 模板方法 include
  • C++基础知识 - deque容器概述

    deque容器概念 deque是 double ended queue 的缩写 和vector一样都是STL的容器 唯一不同的是 deque是双端数组 而vector是单端的 Deque 特点 deque在接口上和vector非常相似 在许
  • c语言输出中文为乱码_C语言输出乱码问题

    题目 要求输出国际象棋棋盘 include include conio h int main int i j for i 0 i lt 8 i for j 0 j lt 8 j if i j 2 0 printf c c 219 219 e
  • QT5.2中新建lib库,在引用时出现error LNK2019: 无法解析的外部符号错误

    1 由于在VS2010中新建QT的lib库时默认的是新建动态链接库 然后我在配置属性中改为lib库 结果生成的lib库在引用是出现error LNK2019 无法解析的外部符号错误 2 error LNK2019 无法解析的外部符号 dec
  • 超越Swin

    作者 科技猛兽 编辑 极市平台 点击下方卡片 关注 自动驾驶之心 公众号 ADAS巨卷干货 即可获取 点击进入 自动驾驶之心 目标检测 技术交流群 后台回复 transformer综述 获取2022最新ViT综述论文 导读 本文提出 FCM
  • Java方法和数组练习

    个人简介 作者简介 大家好 我是W chuanqi 一个编程爱好者 个人主页 W chaunqi 支持我 点赞 收藏 留言 愿你我共勉 没有什么比勇气更温文尔雅 没有什么比怯懦更冷酷无情 Java方法和数组练习 1 获取每月天数 根据输入的
  • el-upload 上传视频并回显

    el upload上传视频 并且显示上传的视频
  • python基础编程_25_拷贝函数,copy()

    import copy a 1 2 3 4 a b b a 引用 除非直接给a重新赋值 否则a变则b变 b变则a变 c copy copy a 浅复制 只会拷贝父对象 不会拷贝父对象中的子对象 所以若a的子对象变则c 变 但是父对象变c不会
  • C++利用Poco库实现QT的信号与槽效果

    C 利用Poco库实现QT的信号与槽效果 定义信号类 信号类的使用 定义类型Model main头文件引用 main定义信号发送类 main定义信号接收类 main主函数 引用的Poco库 参考资源 C 利用Poco库实现QT的信号与槽效果
  • Python3,使用Flask来实现接口请求

    Flask之实现接口请求 1 引言 2 Flask 2 1 flask 的环境安装 2 2 flask构建web框架 2 3 flask构建get请求 2 4 flask构建post请求 2 41 代码编写 2 4 2 安装RestClie