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

前情回顾

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

实战任务

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

执行流程如下

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

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

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

# 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"

执行结果如下:

message= {"resultCode":0,"message":null,"data":{"id":"1067....,"accessory":null}
insert sucessful

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

编写test02.py测试方法

# -*- 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请求进行数据灌入了。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Python程序员杂谈

知乎回答:你是如何学习Django的

对应链接:https://www.zhihu.com/question/59426020/answer/615516853 (点赞走一走,学啥都好上手~)

20540
来自专栏AI算法与图像处理

拉勾网真实数据展示Python岗位就业情况

事情的起源是这样的,某个风和日丽的下午… 习惯性的打开知乎准备划下水,看到一个问题刚好邀请回答

21430
来自专栏Python程序员杂谈

《Django企业开发实战》FAQ - 持续更新

单纯的学习 Django 提供的功能的话,看文档就够了,前提是你英文阅读还行,不过很多「残卷」的中文翻译看起来也不太省时间。当然也有人把 Django 文档做了...

44620
来自专栏Python程序员杂谈

Python音频播客推荐:捕蛇者说

关注我公众号比较久的人应该都看到过我经常会推一些好的播客内容,比较遗憾的是很多中文类的技术播客更新一段时间之后就停更了,或者间歇性停更或者永久「弃坑」。但不管怎...

28920
来自专栏沈唁志

多种语言调用Server酱推送微信模板消息

最近使用了一个 Python 的自动签到脚本,进行自动签到,但是每天签到完白天还需要看日志或者访问网站查看是否成功

24430
来自专栏AI研习社

Github项目推荐 | Python机器学习课程

https://machine-learning-course.readthedocs.io/en/latest/

29740
来自专栏机器学习算法与Python学习

20 个超棒的数据科学 Python 库

为了方便学习,本文列出的20个Python库将按领域进行分类,有些你可能并不熟悉,但是真的能提高你的模型算法实现效率,多一点尝试,多一些努力!

15650
来自专栏AI算法与图像处理

整个朋友圈都是爱你的样子——python骚操作

另外还有一件事情,过几天和当当网合作,有个福利活动,有买书的小伙伴可以稍等几天,可以少花三十块钱左右哦!

11820
来自专栏AI算法与图像处理

github上1.1万+star的各种小功能的代码合集【python版】

分享一个github上超过1.1万个star的项目,下面是一段他自己对这个项目的描述

17820
来自专栏沈唁志

解决Python2中文ascii编码的方法

在YiiChina签到的时候,经常会看到有人在说说里面发群主是最帅的,yii 是 PHP 最好的框架,没有之一,就想到使用一言,在每天签到的时候也发一句话

15620

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励