python笔记8:requests模块

简介:

requests是python的一个http客户端库,跟urlib、urlib2类似,requests模块是基于urlib模块开发的,代码实现更为简洁。

模块安装:

pip install requests ,使用requests模块时直接import requests即可。

简单使用requests:

http协议的接口,请求方式分为get和post,这2种最为常用。请求参数常用的形式有key-value、json、文件上传、接口添加cookies、headers等操作。

get请求-url拼接参数:

import requestsurl = 'http://127.0.0.1:5000/gettest?username=abc'#返回结果类型是字符串:{"msg": "pass"}res = requests.get(url).text

登录后复制

也可以使用.json(),返回结果类型是字典 (注:接口请求的返回值类型 与接口的返回定义类型有关)

#返回结果类型是字典:{'msg': 'pass'}res_dic = requests.get(url).json()

登录后复制

get请求- 请求参数类型是key-value形式:

import requestsurl = 'http://127.0.0.1:5000/gettest'#请传参类型是 name=xxx&pwd=123456data = {"username": "abc"}#返回结果类型是str:{"msg": "pass"}res = requests.get(url, data).text

登录后复制

也可以使用.json(),返回结果类型是字典 (注:接口请求的返回值类型 与接口的返回定义类型有关)

立即学习“Python免费学习笔记(深入)”;

#返回结果类型是字典:{"msg": "pass"}res_dic = requests.get(url, data).json()

登录后复制

get请求调用的接口实现如下:

python笔记8:requests模块python笔记8:requests模块

 1 import flask 2 from flask import request 3 from flask import jsonify 4  5 server = flask.Flask(__name__) 6 @server.route('/gettest', methods=['get']) 7 def test1(): 8     name = request.values.get('username') 9     if name == 'abc':10         #接口返回值类型为字典11         res = {"msg": "pass"}12         return jsonify(res)13     else:14         res = {'msg': "fail"}15         return jsonify(res)16 server.run(debug=True)

登录后复制View Code

post请求 – url拼接参数

import requestsimport jsonurl = 'http://127.0.0.1:5000/gettest?username=abc'#返回结果类型是str:{"msg": "pass"}res = requests.post(url).text#可以通过json.loads将字符串(json串)转换为字典类型,方便取值操作res_dic = json.loads(res)

登录后复制

也可以使用.json(),返回结果类型是字典 (注:接口请求的返回值类型 与接口的返回定义类型有关)

#返回结果类型为字典:{'msg': 'pass'},字典取值操作比较方法res_dic = requests.post(url).json()

登录后复制

post请求 – 传参类型是key-value形式

import requestsimport jsonurl = 'http://127.0.0.1:5000/gettest?username=abc'data = {"username": "abc"}#返回结果类型是str:{"msg": "pass"}res = requests.post(url, data).text#可以通过json.loads将字符串(json串)转换为字典类型,方便取值操作res_dic = json.loads(res)

登录后复制

也可以使用.json(),返回结果类型是字典 (注:接口请求的返回值类型 与接口的返回定义类型有关)

#返回结果类型为字典:{'msg': 'pass'},字典取值操作比较方法res_dic = requests.post(url, data).json()

登录后复制

post请求调用的接口实现如下:

python笔记8:requests模块python笔记8:requests模块

 1 import flask 2 from flask import request 3 from flask import jsonify 4  5 server = flask.Flask(__name__) 6 @server.route('/gettest', methods=['post']) 7 def test1(): 8     #request.values.get('xxx') 这种获取请求参数的方式,可以通过url拼接参数和key-value形式访问接口。 9     name = request.values.get('username')10     if name == 'abc':11         #接口返回值类型为字典12         res = {"msg": "pass"}13         return jsonify(res)14     else:15         res = {'msg': "fail"}16         return jsonify(res)17 server.run(debug=True)

登录后复制View Code

 post请求- 传参类型是json

import requestsurl = 'http://127.0.0.1:5000/register'data = {    "username": "admin",    "pwd": "123456",    "c_pwd": "123456"}#json类型传参,post接口请求时,需要指明下请求参数是json类型,返回结果是字典:{'msg': 'ok'}res = requests.post(url, json=data).json()print(type(res), res)

登录后复制

 post请求- 传参类型是json,多层json嵌套

import requestsurl = 'http://127.0.0.1:5000/register'data = {    "username": "admin",    "pwd": "123456",    "c_pwd": "123456",    "items": {        "id": 1,        "age": 18,        "sex": "man"    }}#json类型传参,post接口请求时,需要指明下请求参数是json类型,返回结果是字典:{'msg': 'ok'}res = requests.post(url, json=data).json()

登录后复制

post请求调用的接口,json传参,代码实现如下:

python笔记8:requests模块python笔记8:requests模块

 1 import flask 2 from flask import request 3 from flask import jsonify 4  5 server = flask.Flask(__name__) 6 @server.route('/register', methods=['post']) 7 def test1(): 8     #request.json,传参类型为json,返回结果类型为字典:{'pwd': '123456', 'username': 'asdf', 'c_pwd': '123456'} 9     res_dic = request.json10     username = res_dic.get('username')11     pwd = res_dic.get('pwd')12     c_pwd = res_dic.get('c_pwd')13     if username and pwd and c_pwd:14         if res_dic.get('username') == 'admin':15             if res_dic.get('pwd') == res_dic.get('c_pwd'):16                 return jsonify({'msg': "ok"})17             else:18                 return jsonify({'msg': "密码不一致"})19         else:20             return jsonify({'msg': "username不能注册"})21 server.run(debug=True)

登录后复制View Code

post请求 – 上传文件

import requestsurl = 'http://127.0.0.1:5000/upload'#上传接口请求数据,指定上传文件的路径data = {"file_name": open('E:/python_workspace/base-code/asdf.txt', encoding='utf8')}#post请求,请求参数类型是file,返回结果类型是字典res = requests.post(url, files=data).json()print(type(res), res)

登录后复制

post请求调用的上传接口,代码实现如下:

python笔记8:requests模块python笔记8:requests模块

 1 import flask 2 from flask import request 3 from flask import jsonify 4 import time, os 5 from flask import send_from_directory 6 #上传文件接口 7 server = flask.Flask(__name__) 8 @server.route('/upload', methods=['post']) 9 def upload():10     #获取请求参数,传参类型是file,返回结果类型是一个对象: 11     file = request.files.get('file_name', None)12     #判断file是否为空,若为空则没有上传文件13     if file:14         cur_time = time.strftime('%Y%m%d%H%M%S')  #获取当前时间15         upload_name = file.filename               #获取上传文件的名称16         new_file_name = cur_time+upload_name      #给文件重命名,防止有重复文件覆盖17         # 保存文件,指定文件上传的路径18         file.save('E:/python_workspace/base-code/'+new_file_name)19         return jsonify({"code": "ok"})20     else:21         return jsonify({"code": "请上传文件"})22 23 if __name__ == '__main__':24     server.run(debug=True)

登录后复制View Code

post请求 – 添加cookies

import requestsurl = 'http://127.0.0.1:5000/set_cookies'data = {"username": "xiaobai", "monkey": "999"}#请求cookie参数cookie = {"token": "123456"}#接口请求,返回结果类型是字典:{'msg': 'ok'}res = requests.post(url, data=data, cookies=cookie).json()print(type(res), res)

登录后复制

post请求调用的添加cookie接口,代码实现如下:

python笔记8:requests模块python笔记8:requests模块

 1 import flask 2 from flask import  request 3 from flask import  jsonify 4 server = flask.Flask(__name__) 5 @server.route('/set_cookies', methods=['post']) 6 def set_cookies(): 7     print('获取到的cookie:', request.cookies)      #{'token': '123456'} 8     print('获取到的请求数据:', request.values)    # CombinedMultiDict([ImmutableMultiDict([]), ImmutableMultiDict([('monkey', '999'), ('username', 'xiaobai')])]) 9     token = request.cookies.get('token')10     if token:11         return jsonify({"msg": "ok"})12     else:13         return jsonify({"msg": "没有添加cookie"})14 15 if __name__ == '__main__':16     server.run(debug=True)

登录后复制View Code

 post请求- 添加headers

import requestsheader_url = 'http://127.0.0.1:5000/set_headers'data = {"username": "123456", "monkey": "666"}#添加header信息header = {'Content-Type': "application/json"}#接口请求res = requests.post(header_url, data, headers=header).json()

登录后复制

欢迎评论~~~

 

以上就是python笔记8:requests模块的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2268385.html

(0)
上一篇 2025年2月27日 10:42:23
下一篇 2025年2月27日 10:42:40

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • python函数中return后的语句执行不?

    这篇文章主要给大家详细分析讲解了关于python函数中return语句后的语句是否一定不会执行的相关资料,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面跟着小编一起来学习学习吧。 前言 return语句用于退出函数,向调…

    编程技术 2025年2月27日
    000
  • 抓包数据乱码是什么情况?

    为什么会出现这种情况?细心的童鞋可能发现是我们发送给服务器的请求连接的数据不同: 第一张图的信息是{“roomid”:98284,”uid”:271298361556770} 第二张图的信息是…

    2025年2月27日 编程技术
    200
  • 学Python就用Anaconda神器

      anaconda 是一个用于科学计算的 python 发行版,支持 linux, mac, windows, 包含了众多流行的科学计算、数据分析的 python 包。   立即学习“Python免费学习笔记(深入)”;   python…

    编程技术 2025年2月27日
    200
  • 电脑编程类是什么意思啊

    电脑编程类专注于创建、维护和调试计算机程序,使用编程语言编写指令。它涵盖广泛主题,包括编程语言、数据结构、算法、软件工程和计算机体系结构等,在现代社会中至关重要,应用于Web开发、移动应用开发、数据分析、机器学习和游戏开发等领域。学习编程类…

    2025年2月27日
    200
  • Python生成脚本–实现数据库更新

      我在工作的时候,在测试环境下使用的数据库跟生产环境的数据库不一致,当我们的测试环境下的数据库完成测试准备更新到生产环境上的数据库时候,需要准备更新脚本,真是一不小心没记下来就会忘了改了哪里,哪里添加了什么,这个真是非常让人头疼。因此我就…

    2025年2月27日 编程技术
    200
  • 计算机语言是什么

    计算机语言是用于与计算机通信的符号系统,它包括机器语言和高级语言。高级语言使用接近英语的语法,允许我们更轻松地向计算机传达命令,并理解其响应。 计算机语言 什么是计算机语言? 计算机语言是用来书写程序和与计算机通信的符号系统。它是一种人类语…

    2025年2月27日
    200
  • python的数据结构

    数据结构:是指通过某种方式组织在一起的数据元素的集合 主要包括: 序列:主要介绍列表、元组、字符串 映射:字典 集合(set) 立即学习“Python免费学习笔记(深入)”;   列表:shoplist = [‘apple&#8…

    编程技术 2025年2月27日
    200
  • 计算机编程语言有哪些种类

    主要的计算机编程语言类别包括:编译型(C、C++、Java)、解释型(Python、JavaScript、PHP)、脚本(Bash、PowerShell、VBScript)、逻辑(Prolog、Mercury)、函数式(Haskell、Sc…

    2025年2月27日
    200
  • python字符串反转

    str类型python并没有reverse函数。 然而,通过反向步进切片,我们可以高效地反转一串字符串。 仅支持英文字符。 例: 1 a = ‘example’2 b = a[::-1]3 print(b)4 #输出结果’elpmaxe’ …

    编程技术 2025年2月27日
    200
  • 编程现在学什么语言好

    对于初学者来说,推荐学习Python或JavaScript,而随着经验的增长,还可以考虑掌握Java、C++或C#。 编程现在学什么语言好 随着科技的飞速发展,掌握编程语言已成为一项必备技能。选择一门编程语言对于初学者来说可能是一项艰巨的任…

    2025年2月27日
    200

发表回复

登录后才能评论