zoukankan      html  css  js  c++  java
  • Python学习笔记(七)

    用python代码调用接口,使用urllib模块,但是该模块数据必须都是2进制的,比较麻烦

    from urllib.request import urlopen
    from urllib.parse import urlencode
    url = 'http://1。1.1.1/api/user/login'
    res = urlopen(url) # 发送get请求
    print(res.read().decode())
    data = {'username':'niuhanyang','passwd':'aA123456'}
    res = urlopen(url,urlencode(data).encode()) # 发送post请求
    print(res.read().decode())

    所以直接使用requests模块更方便使用

    发送get请求

    import requests
    url = 'http://1。1.1.1/api/user/stu_info'
    res = requests.get(url,params={'stu_name':'xiaohei'}) # 发送get请求
    print(res.json()) # json直接把返回结果转成字典

    发送post请求

    url = 'http://1.1.1.1/api/user/login'
    data = {'username':'niuhanyang','passwd':'aA123456'}
    res = requests.post(url,data=data) # 发送post请求
    print(res.json())

    发送入参是json类型的post请求

    url = 'http://1。1.1.1/api/user/add_stu'
    data = {
        "name":"小黑",
        "grade":"天蝎座",
        "phone":12312341234,
        "sex":"",
        "age":28,
        "addr":"河南省济源市北海大道32号"
      }
    res = requests.post(url,json=data) # 发送post请求,入参是json类型的
    print(res.json())

    发送有cookie的post请求

    url = 'http://1.1.1.1/api/user/gold_add'
    data = {
        'stu_id':11,
        'gold':200
      }
    cookie = {'niuhanyang':'abd9a0995f4696e1a60133220b32037a'}
    res = requests.post(url,data=data,cookies=cookie) # 发送post请求,添加cookie
    print(res.json())

    发送有header的post请求

    url = 'http://1。1.1.1/api/user/all_stu'
    header = {'Referer':'http://api.nnzhp.cn/'}
    res = requests.get(url,headers=header) # 发送get请求,添加header
    print(res.json())

    上传文件

    url = 'http://1。1.1.1/api/file/file_upload'
    data = {'file':open('图片.jpg','rb')}
    res = requests.post(url,files=data) # 上传文件
    print(res.json())

    下载文件

    url = 'http://qiniuuwmp3.changba.com/1084511584.mp3'
    res = requests.get(url)
    print(res.content) # 返回的都是2进制的
    with open('魔鬼中的天使.mp3','wb') as f:
        f.write(res.content)
    
    url = 'https://aliimg.changba.com/cache/photo/855e5493-f018-44db-8892-c8660649327b_640_640.jpg'
    res = requests.get(url,verify=False) # 如果是https的话,加verify=False,不验证证书
    with open('图片.jpg','wb') as f:
        f.write(res.content)

    常用方法

    res.json() # 必须返回是json的才能用
    res.text # 返回的都是字符串,下载文件的话用text不行
    res.content # 用来下载文件,返回的是2进制的
    res.cookies # 获取到返回的cookie
    res.headers # 获取到返回的header
    res.status.code # 获取状态码

    异常处理

    money = 1000
    num = input('please enter a num:')
    try:
        num = float(num)
        res = money/num
    except Exception as e: # 出现异常,走except下面的代码
        print('出现异常了')
        print('你输入的价格不合法')
        print(e)
        raise Exception('主动,错误信息:%s' %e)
        # raise 主动抛出一个异常
    else: # 没有异常走else下面的代码
        money -= num
        print('余额是:%s' %money)
    finally: # 有没有异常,都会执行
        print('zzzzzz')

    面向对象编程

    类,可以认为是一个模板,比如人类,猫类,狗类,房子类等,实例化一个对象,就是按照房子类,创造一个房子

    # 类,类名一般都以大写字母开头
    # class House: # 经典类
    class House(object): # 新式类
        def save(self):
            print('能住人')
    a = House()
    a.save()

    人类都有相同的特点,1个嘴巴,2个眼睛,2个耳朵,这些就是类变量,各人之间的名字、年龄,性别都不同,这些就是成员变量。

    某个人就剩1个眼睛了,也可以修改这个人的类变量,不会影响其他人的类变量

    class Person: # 类,类名一般都以大写字母开头
        country = 'China' # 类变量
        eyes = 2
        ears = 2
        mouth = 1
        def __init__(self,name,age,sex): # 构造函数
            print('开始造人了')
            # 就是这个类在初始化的时候执行的
            self.name = name   # 属性,实例变量,成员变量
            self.age = age
            self.sex = sex
        def cry(self): # 类方法
            print('%scrying' %self.name)
    taotao = Person('taotao',19,'') # 实例化
    taotao.cry()
    print(taotao.eyes)
    taotao.eyes = 1
    print(taotao.eyes)
  • 相关阅读:
    软件工程实践2019第三次作业
    软件工程实践2019第二次作业
    软件工程实践2019第一次作业
    《暗时间》读书笔记
    2020 软工实践 寒假作业(1/2)
    个人技术博客——Spring中Controller的传参与返回值处理
    2020 软工实践 个人作业——软件工程实践总结
    2020 软工实践 个人作业——软件测评
    2020 软工实践 疫情统计可视化 (实现)
    2020 软工实践 疫情统计可视化(原型设计)
  • 原文地址:https://www.cnblogs.com/qingmingzy/p/9363099.html
Copyright © 2011-2022 走看看