首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >《看漫画学python》第十二天-网络通信

《看漫画学python》第十二天-网络通信

作者头像
用户10002156
发布2023-08-07 13:41:24
发布2023-08-07 13:41:24
3260
举报
文章被收录于专栏:生活处处有BUG生活处处有BUG

通信

urllib.request模块

发送GET请求

如果要发送HTTP/HTTPS的GET请求,则可以使用urllib.request模块的Request对象。

代码语言:javascript
复制
import urllib.request

url = 'https://mock.apifox.cn/m1/2284281-0-default/users'
response = urllib.request.urlopen(url)

# 读取响应内容并打印到控制台
print(response.read().decode('utf-8'))

发送POST请求

代码语言:javascript
复制
import urllib.request
import urllib.parse

url = 'https://mock.apifox.cn/m1/2284281-0-default/users'
params = {'username': 'zhangsan', 'age': 18}
data = urllib.parse.urlencode(params).encode()
req = urllib.request.Request(url=url, method='POST', data=data)
response = urllib.request.urlopen(req)

# 读取响应内容并打印到控制台
print(response.read().decode('utf-8'))

JSON文档的结构

json数据

json数组

代码语言:javascript
复制
import urllib.request
import json
url = 'https://mock.apifox.cn/m1/2284281-0-default/users'
response = urllib.request.urlopen(url)

# 读取响应内容并打印到控制台
data = response.read().decode('utf-8')
print(json.loads(data)) # 把json字符串转换回数据结构

多线程

线程模块——threading

Python官方提供的threading模块可以进行多线程编程。threading模块提供了多线程编程的高级API,使用起来比较简单。

  • • active_count():返回当前处于活动状态的线程个数。
  • • current_thread():返回当前的Thread对象。
  • • main_thread():返回主线程对象。主线程是Python解释器启动的线程。

创建子线程

创建一个可执行的子线程,需要如下两个要素。

  1. 1. 线程对象:线程对象是threading模块的线程类Thread或Thread子类所创建的对象。
  2. 2. 线程体:线程体是子线程要执行的代码,这些代码会被封装到一个函数中。子线程在启动后会执行线程体。

实现线程体主要有以下两种方式。

  1. 1. 自定义函数实现线程体。
  2. 2. 自定义线程类实现线程体

自定义函数实现线程体

创建线程Thread对象的构造方法如下:

代码语言:javascript
复制
Thread(target=None, name=None, args=())

target参数指向线程体函数,我们可以自定义该线程体函数;通过name参数可以设置线程名,如果省略这个参数,则系统会为其分配一个名称;args是为线程体函数提供的参数,是一个元组类型。

自定义线程类实现线程体

另外一种实现线程体的方式是,创建一个Thread子类并重写run()方法,run()方法就是线程体函数。

线程管理

线程管理包括线程创建、线程启动、线程休眠、等待线程结束和线程停止。

等待线程结束

线程停止

image-20230605190314357

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-06-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生活处处有BUG 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 通信
    • urllib.request模块
    • JSON文档的结构
  • 多线程
    • 线程模块——threading
    • 创建子线程
      • 自定义函数实现线程体
      • 自定义线程类实现线程体
    • 线程管理
      • 等待线程结束
      • 线程停止
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档