Python 调用API接口方式,通过http.client调用api接口,远程调用flask接口方式

本文详细介绍了如何使用Python创建和调用RESTful API,以判断输入的大学名称是否属于985、211或世界一流的大学。通过实例演示了如何在run.py中设置接口,并利用config.py配置,最后通过http.client模块进行API调用。
摘要由CSDN通过智能技术生成

一、创建接口(如果调用别人的接口,跳过此条)

如果没有api,首先自己写一个接口玩一下:

必备知识:一个项目最基本的文件,接口run.py文件、config文件以及服务的主体函数文件,在这里我分别命名为run.py、config.py、service.py作为例子,当然大项目的文件要更复杂,分为多个模块,但是万变不离其宗。

run.py文件如下

# -------------------------------------------------------------------------------
# coding:utf-8
# Description:  
# Reference:
# Author: dacongming
# Date:   2022/9/5
# -------------------------------------------------------------------------------

from flask import Flask, request
import json
from service import service_function
from config import *

app = Flask(__name__)

#API_DIR接口路径,METHOD调用方法
@app.route(API_DIR, methods=METHOD)
def API_service():
    try:
        get_Data = json.loads(request.get_data())
        content = get_Data.get('content')
        result =  service_function(content)
        return json.dumps(result, ensure_ascii=False, indent=4)
    except:
        return json.dumps({'error': '此接口内部错误'}, ensure_ascii=False)

if __name__ == "__main__":
    app.run(host=IP, debug=True, port=PORT,threaded=True)

 service.py文件如下:

# -------------------------------------------------------------------------------
# coding:utf-8
# Description:  
# Reference:
# Author: dacongming
# Date:   2022/9/5
# -------------------------------------------------------------------------------

def service_function(content):
    flag_list = list()
    flag = ''
    univer_list_first_class = ["北京大学"]
    univer_list_985 = ['北京大学']
    univer_list_211 = ['北京大学']
    if content in univer_list_first_class:
        flag = '世界一流大学'
        flag_list.append(flag)
    if content in univer_list_985:
        flag = '985大学'
        flag_list.append(flag)
    if content in univer_list_211:
        flag = '211大学'
        flag_list.append(flag)
    return flag_list

config.py 文件如下:

# -------------------------------------------------------------------------------
# coding:utf-8
# Description:  
# Reference:
# Author: dacongming
# Date:   2022/9/5
# -------------------------------------------------------------------------------
import os
base_dir = os.path.split(os.path.realpath(__file__))[0]

API_DIR = '/University/Class'


IP = "0.0.0.0"
PORT = 5005
METHOD = ["POST"]

运行接口文件run.py,如下则启用成功:

 验证环节:

postman调用验证:左侧调用,右侧结果

 二、API调用接口

python 内置模块的接口调用:

应用模块http.client

直接上代码:

# -------------------------------------------------------------------------------
# coding:utf-8
# Description:  
# Reference:
# Author: dacongming
# Date:   2022/9/5
# -------------------------------------------------------------------------------
import http.client
import json

def call_api(inputdata):
    """
    :param inputdata: 单个样本的输入参数,是字典格式的数据
    :return: 单个样本的探真查询变量结果数据
    """
    #配置参数IP,根据自己情况修改,此处为本地调用
    url = '127.0.0.1'

    # 调用接口
    connection = http.client.HTTPConnection(url,5005)#需要根据自己情况修改,5005为端口号
    headers = {'Content-type': 'application/json'}
    json_inputdata = json.dumps(inputdata)
    connection.request('POST', '/University/Class', json_inputdata, headers)
    response = connection.getresponse()
    res_dic = json.loads(response.read().decode())
    
    return res_dic

if __name__ == "__main__":
    inputdata = {"content":"北京大学"}
    result = call_api(inputdata)
    print(result)

结果:

  • 2
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

医学小达人

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

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

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

打赏作者

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

抵扣说明:

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

余额充值