前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python采用并发查询mysql以及调用API灌数据 (四)- Python封装Http请求基本类方法

Python采用并发查询mysql以及调用API灌数据 (四)- Python封装Http请求基本类方法

作者头像
Devops海洋的渔夫
发布2019-05-31 16:26:37
1K0
发布2019-05-31 16:26:37
举报
文章被收录于专栏:Devops专栏Devops专栏

前情回顾

上一篇文章已经编写了跨文件目录引入mysql的封装类,那么本章节我们来继续编写封装Http请求的基本类方法。

实战任务

本次因为服务架构重构,表优化、重构,带来的任务就是需要从原来的mysql数据库中,读取原表数据(部分存在多张关联查询)然后通过调用API的服务方式灌入新的数据库表中(包含mysql、mongodb)。

执行流程如下

那么根据流程所需要的功能,需要以下的实例进行支撑: 1.并发实例 2.查询数据实例 3.执行post请求实例

目标:编写Http执行POST请求的基本类方法

编写Http执行POST请求基本类方法

代码语言:javascript
复制
# coding:utf-8
import urllib2,json

class PostHelper(object): # 继承object类所有方法

    def post(self, url , headers , body):
        self.data = json.dumps(body)
        try:
            request = urllib2.Request(url, self.data, headers)  # urllib2用一个Request对象来映射你提出的HTTP请求
            print request
            response = urllib2.urlopen(request)  # 通过调用urlopen并传入Request对象,将返回一个相关请求response对象
            print response
            message = response.read()  # 这个应答对象如同一个文件对象,所以你可以在Response中调用.read()
            print "message=",message
            return self.check_ResuleCode(message)
        except Exception as e:
            print str(e)

    def check_ResuleCode(self,message):
        hjson = json.loads(message)
        # print hjson['resultCode']
        if hjson['resultCode'] == 0:
            # print "implements sucessful!"
            return True
        else:
            # print "implements fail!"
            return False

if __name__ == "__main__":

    # 定义请求参数
    url='你需要发送的API请求的url'
    body = {‘######注释请求体######’}
    headers={
        'Content-Type':'application/json',
        ....
        # 补充你所需的请求头信息
    }     #头部

    # 初始化请求类
    httpPost = PostHelper()

    # 执行post请求
    result = httpPost.post(url,headers,body)

    # 判断是否执行成功
    if result:
        print "insert sucessful"
    else:
        print "insert fail"

执行结果如下:

代码语言:javascript
复制
message= {"resultCode":0,"message":null,"data":{"id":"1067....,"accessory":null}
insert sucessful

现在有了post请求的工具类方法了,那么下一步就来看看如何使用test02.py的测试脚本来调用一下看看。

编写test02.py测试方法

代码语言:javascript
复制
# -*- coding: utf-8 -*-

from tools.PostTools import PostHelper

if __name__ == "__main__":

    # 定义请求参数
    url='服务API接口url地址'
    body = {‘######注释请求体######’}
    headers={
        'Content-Type':'application/json',
        ..... 头部参数
    }     #头部

    # 初始化请求类
    httpPost = PostHelper()

    # 执行post请求
    result = httpPost.post(url,headers,body)

    # 判断是否执行成功
    if result:
        print "insert sucessful"
    else:
        print "insert fail"

到了这里应该可以比较简化地使用Http的请求了,那么下一步就可以结合mysql查询出来的数据,使用http请求进行数据灌入了。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.11.29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档