zoukankan      html  css  js  c++  java
  • Requests库的使用

    Requests

      Requests是用python语言基于urllib编写的,是Python实现的简单易用的HTTP库,可以用它来完成大部分HTTP协议行为,例如: HEAD、GET、POST、PUT、PATCH、DELETE请求等。Requests它会比urllib更加方便,可以节约我们大量的工作。

    安装方法

      默认安装好python之后,是没有安装requests模块的,需要单独通过pip安装

    1、打开终端
    2、pip install requests
    

    Requests库的常用方法

    方法名 说明 使用方法
    get 获取数据 requests.get()
    post 提交数据 requests.post()
    put 更新数据 requests.put()
    delete 删除数据 requests.delete()

    response对象的属性

      status_code:响应状态码

      url:响应的地址

      text:响应文本内容

      json():响应的json对象,就是把 json数据转成了Python中的字典或者列表

      headers:响应头

      cookies:获取响应的cookie信息

    示例:

    import requests
    
    
    def weather():
        url = "https://api.apiopen.top/getSingleJoke?sid=28654780"
        # 获取请求数据
        response = requests.get(url)
        # 指定字符编码
        response.encoding = "utf-8"
        return response
    
    
    if __name__ == '__main__':
        resp = weather()
        print("响应状态码:", resp.status_code)
        print("响应的地址:", resp.url)
        print("响应头:", resp.headers)
        print("响应文本内容:", resp.text)
        print("响应的cookie信息:", resp.cookies)
    
        data = resp.json()
        print("响应的json数据:", data, type(data))
    
        # 获取响应的指定数据
        result = data["result"]
        print(result.get("text"))
    

    GET请求

    • 无查询参数
    • 有查询参数
    • 路径参数

    示例:

    import requests
    
    
    # 使用get方式查询 - 无参查询
    def get_departments():
        url = "http://127.0.0.1:8000/api/departments/"
        response = requests.get(url)
        return response.json()
    
    
    # 使用get方式查询 - 有参查询
    def get_departments_by_query_params(name):
        url = "http://127.0.0.1:8000/api/departments/"
        params = {
            "dep_name": {name}
        }
        response = requests.get(url, params=params)
        return response.json()
    
    
    # 使用get方式查询 - 路径参数查询
    def get_departments_by_id(dep_id):
        url = f"http://127.0.0.1:8000/api/departments/{dep_id}"
        response = requests.get(url)
        return response.json()
    
    
    if __name__ == '__main__':
        result = get_departments()
        print(result)
    
        result = get_departments_by_query_params("Python学院")
        print(result)
    
        result = get_departments_by_id("T03")
        print(result)
    

    POST请求

    • 提交json数据
    • 提交表单数据

    示例:

    import requests
    
    
    # 使用post方式提交 - json数据
    def add_department():
        url = "http://127.0.0.1:8000/api/departments/"
        json = {
            "data": [
                {
                    "dep_id": "T1001",
                    "dep_name": "Test学院",
                    "master_name": "Test-Master",
                    "slogan": "Here is Slogan"
                }
            ]
        }
        response = requests.post(url, json=json)
        return response.json()
    
    
    # 使用post方式提交 - 表单数据
    def add_department2():
        url = "http://1.117.181.153:8085/admin_login/"
        data = {
            "username": "liyang",
            "password": "admin123"
        }
        response = requests.post(url, data=data)
        return response.json()
    
    
    if __name__ == '__main__':
        result = add_department()
        print(result)
    
        result = add_department2()
        print(result)
    

    PUT请求

    示例:

    import requests
    
    
    # 使用put方式通过json方式修改数据
    def update_department(dep_id, dep_name, master_name):
        url = f"http://127.0.0.1:8000/api/departments/{dep_id}/"
        json = {
            "data": [
                {
                    "dep_id": dep_id,
                    "dep_name": dep_name,
                    "master_name": master_name,
                    "slogan": "Here is Slogan"
                }
            ]
        }
        response = requests.put(url, json=json)
        return response.json()
    
    
    if __name__ == '__main__':
        result = update_department("T1023", "张三丰", "娃哈哈")
        print(result)
    

    DELETE请求

    示例:

    import requests
    
    
    # 使用delete请求删除指定json数据
    def remove_department(dep_id):
        url = f"http://127.0.0.1:8000/api/departments/{dep_id}/"
        response = requests.delete(url)
        return response.ok
    
    
    # 使用delete请求删除多个json数据
    def remove_departments(dep_id_list):
        # url = f"http://127.0.0.1:8000/api/departments/?$dep_id_list={dep_id_list}"
        url = "http://127.0.0.1:8000/api/departments/"
        params = {
            "$dep_id_list": dep_id_list
        }
        response = requests.delete(url, params=params)
        return response.ok
    
    
    if __name__ == '__main__':
        result = remove_department("T10234")
        print("删除成功" if result.__eq__(True) else "删除失败")
    
        result = remove_departments("T222,T333,333")
        print("删除成功" if result.__eq__(True) else "删除失败")
    
  • 相关阅读:
    JavaScript大文件上传(切片)
    hdu 4841 圆桌问题(STL vector)
    hdu 5389 Zero Escape(记忆化搜索)
    hdu 1331 Function Run Fun
    hdu 1078 FatMouse and Cheese(记忆化搜索)
    【CQgame】[幸运方块 v1.1.3] [Lucky_Block v1.1.3]
    SAP C4C,CRM和S4HANA的Saved Query使用介绍
    SAP CRM中间件Material Sales Organization和distribution channel的映射逻辑
    SAP CRM 中间件Request download里,遇到/SAPPSPRO/S_MAT_ENHANC_COMM 错误的解决办法
    SAP 数据库表CRMD_ORDERADM_I字段OBJECT_TYPE的计算逻辑
  • 原文地址:https://www.cnblogs.com/lyang-a/p/15086630.html
Copyright © 2011-2022 走看看