欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

restful api接口封装

程序员文章站 2022-04-10 09:52:38
1. 背景知识restful 是一种互联网软件架构(以网络为基础的应用软件的架构设计),其特点:一个URL对应一种资源表现层:客户端和服务器之间,把"资源"具体呈现出来的形式,如文本可以采用txt,json等格式客户端基本操作:GET 获取资源、POST 新建/更新资源、PUT 更新资源、DELETE 删除资源2. 使用说明route():装饰器,URL对应触发的函数,该段代码运行后,打开http://127.0.0.1:5000即可查看对应的资源from flask import Fla...

1. 背景知识

restful 是一种互联网软件架构(以网络为基础的应用软件的架构设计),其特点:

  • 一个URL对应一种资源
  • 表现层:客户端和服务器之间,把"资源"具体呈现出来的形式,如文本可以采用txt,json等格式
  • 客户端基本操作:GET 获取资源、POST 新建/更新资源、PUT 更新资源、DELETE 删除资源

flask官网:http://flask.pocoo.org/docs/0.12/quickstart/#a-minimal-application

2. 使用说明

route():装饰器,URL对应触发的函数,该段代码运行后,打开http://127.0.0.1:5000即可查看对应的资源

  • 外部访问:配置 app.run(host=“0.0.0.0”, port=5000)
from flask import Flask, jsonify, abort

app = Flask(__name__)

results = [
    {
        'input_text': 'xxx',
        'data': [
            {
                'word': 'xxx',
                'title': ['3690090392616837245', '3814509192824492032']
            }
        ]
    }
]


@app.route('/query/<string:input_text>', methods=['GET'])
def get_tasks(input_text):
    result = list(filter(lambda t: t['input_text'] == input_text, results))
    if len(result) == 0:
         abort(404)
    return jsonify({'results': result})


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

在python中采用requests获取网页上资源

import requests
ans = requests.get('http://127.0.0.1:5000/query/xxx')
print(ans.text)

3. 接受请求数据,并返回结果

采用 flask_restful 包的 api 的 get 方法接收请求,并将计算结果返回
客户端在python中采用requests获取网页上资源,并传递请求参数,该段代码中的请求参数为:input_text,值为:枪支

flask接收参数的方式如下,使用中发现采用 post 提交参数,form获取参数的 post 方法速度比 get 方法快些。

  • request.form.get("key", type=str, default=None) 获取表单数据
  • request.args.get("key") 获取 get 请求参数
  • request.values.get("key") 获取所有参数
  • request.get_json("key") 获取解析 json 数据格式
import requests
ans = requests.get('http://127.0.0.1:5000/query/?input_text=枪支')
print(ans.text.encode('utf-8').decode('unicode_escape'))

flask_restful 接收到该参数,并经过一系列的计算后将结果返回

from flask import Flask, request
from flask_restful import Api, Resource
from search_recommend import process_search_recommend

app = Flask(__name__)
api = Api(app)


class ReceiveText(Resource):
    def get(self):
        input_text = request.args.get('input_text')
        results = process_search_recommend(input_text)
        return results, 200


api.add_resource(ReceiveText, '/query/')


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

restful api接口封装

本文地址:https://blog.csdn.net/shlhhy/article/details/107382942

相关标签: python