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

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能帮我们节省不少寻找或开发第三方扩展的精力。

  • 6
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
下面是一个使用 Flask 实现 POST 请求的示例代码: ```python from flask import Flask, request, jsonify app = Flask(__name__) @app.route('/api/data', methods=['POST']) def post_data(): data = request.get_json() # 获取 POST 请求中的 JSON 数据 # 在这里对数据进行处理和计算 result = {'result': 'success'} return jsonify(result) if __name__ == '__main__': app.run(debug=True) ``` 在这个例子中,我们使用 Flask 框架创建了一个名为 `app` 的应用程序。我们创建了一个 `post_data` 函数,它将处理 POST 请求并返回响应。我们使用 `@app.route` 装饰器指定了路由路径 `/api/data` 和请求方法 `POST`。 在 `post_data` 函数中,我们使用 `request.get_json()` 方法获取 POST 请求中的 JSON 数据,并将其存储在 `data` 变量中。在这里,我们可以对数据进行处理和计算,并将结果存储在 `result` 变量中。最后,我们使用 `jsonify` 方法将 `result` 变量转换为 JSON 格式,并将其作为响应返回。 当我们运行这个应用程序时,它将在本地主机(localhost)的 5000 端口上监听请求。可以使用类似于以下的 curl 命令来向 `/api/data` 路由发送 POST 请求: ``` $ curl -X POST -H "Content-Type: application/json" -d '{"data": "example"}' http://localhost:5000/api/data ``` 这个命令将发送一个包含 JSON 数据的 POST 请求。在这个例子中,我们发送的 JSON 数据是 `{"data": "example"}`。收到请求后,Flask 将执行 `post_data` 函数并返回 JSON 格式的响应。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Carl_奕然

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值