手机制作网站免费,建设个人网上银行登录入口官网,西安东郊做网站,足球最新比赛消息目录
Json数据格式
前言
JSON格式
python数据和Json数据的相互转化
多线程
进程和线程
串行和并行
多线程编程
创建线程参数
具体案例
网络编程
套接字
socket服务端编程步骤
socket客户端编程步骤
python操作mysql数据库
查询并接收数据
数据插入 Json数据格…目录
Json数据格式
前言
JSON格式
python数据和Json数据的相互转化
多线程
进程和线程
串行和并行
多线程编程
创建线程参数
具体案例
网络编程
套接字
socket服务端编程步骤
socket客户端编程步骤
python操作mysql数据库
查询并接收数据
数据插入 Json数据格式
前言
JSON是一种轻量级的数据交换格式可以按照JSON指定的格式去组织和封装数据JSON本质上是一个带有特定格式的字符串
功能JSON就是一种在各个编程语言中流通的数据格式负责不同编程语言中的数据传递和交互 JSON格式
#方式1
{name:admin,age:18}#方式2
[{name:admin,age:18},{name:root,age:16},{name:张三,age:20}]
注意json数据相对与python就是字典或者字典列表
python数据和Json数据的相互转化
#导入json模块
import json#准备符合格式json格式要求的python数据
data[{name:老王,age:16},{name:张三,age:20}]#通过json.dumps(data)方法把python数据转化为json数据
#ensure_ascii参数改为False表示不使用ASCII码来转换他而是把内容直接输出出去
datajson.dumps(data,ensure_asciiFalse)#通过json.loads(data)方法把json数据转化为python数据
datajson.loads(data)
多线程
进程和线程
进程就是一个程序运行在系统之上那么便称这个程序为一个运行进程并分配ID方便系统管理
线程线程归于进程一个进程可开启多个线程执行不同工作线程是进程的实际工作最小单位
注意
操作系统可以运行多个进程即多任务运行一个进程内可以运行多个线程即多线程运行进程之间是内存隔离的即不同进程拥有各自的内存空间这就类似于不同的公司拥有不同的办公场所线程之间是内存共享的线程是属于进程的一个进程内的多个线程之间共享这个进程所拥有的内存空间。 串行和并行
串行任务一个接一个的顺序进行并行多个任务同时执行需CPU的多个核
多线程编程
#导入线程模块
import threading
#创建线程
thread_objthreading.thread([group],target,[name],[args],[kwargs])
#启动线程
thread_obj.start()
创建线程参数
group暂时无用未来功能的预留参数target执行的目标任务名args以元组的方式给执行任务传参kwargs以字典的方式给执行的任务传参name线程名
具体案例
import threading
import time
def sing(msg):while True:print(msg)time.sleep(1)
def dance(email):while True:print(email)time.sleep(1)
if __name__ __main__:#因为target是第二个参数所以必须给参数名进行传参sing_threadthreading.Thread(targetsing,args(我在唱歌……,))dance_threadthreading.Thread(targetdance,kwargs{email:我在跳舞})#启动线程sing_thread.start()dance_thread.start()
网络编程
套接字
socket简称套接字其是进程间通信的一个工具好比现实生活中的插座所有的家用电器想要工作都是基于插座进行进程之间想要进行网络通信需要socket 两进程之间通过socket进行通信就必须有服务端和客户端
socket服务端等待其他进程的连接可接收发来的消息可以回复消息socket客户端主动连接服务端可以发送消息可以接受回复
socket服务端编程步骤
#socket服务端开发
#导入socket模块
import socket
#创建socket对象
socket_serversocket.socket()
#绑定ip和端口(里面传的是__address的元组)
socket_server.bind((localhost,8888))
#监听端口里面的1表示允许客户端连接的数量
socket_server.listen(1)
#等待客户端的连接
#accept为阻塞方法若没有连接则将会卡在这里不执行
#这里返回的result为二元元组
result:tuplesocket_server.accept()
connresult[0] #客户端和服务端的连接对象
addressresult[1] #客户端的地址信息
print(f接收到了客户端的连接客户端的信息是{address})
while True:#接收客户端发送的信息,使用客户端和服务端的本次连接对象而非socket_serverdata:strconn.recv(1024).decode(UTF-8)#recv也是阻塞方法其接收参数为缓冲区大小一般1024即可#recv方法的返回值为一个字节数组不是字符串所以可以通过decode方法通过UTF-8编码转换为字符串对象print(f客户端发送的消息为{data})#发送回复消息msginput(请输入你要和客户端回复的消息)if msgexit:breakconn.send(msg.encode(UTF-8))
#关闭连接
conn.close()
socket_server.close()
socket客户端编程步骤
#socket客户端开发
#导入socket模块
import socket
#创建socket对象
socket_clientsocket.socket()
#连接到服务端(里面传的是__address的元组)
socket_client.connect((localhost,8888))
while True:#向服务端发送消息msginput(请输入要给服务端发送的消息)if msgexit:breaksocket_client.send(msg.encode(UTF-8))#接收返回的消息#recv方法为阻塞方法传入参数为字节缓冲区大小datasocket_client.recv(1024).decode(UTF-8)print(f服务端发来的消息为{data})
#关闭连接
socket_client.close()
python操作mysql数据库
前言在python中使用第三方库pymysql来完成对mysql数据库的操作 安装pip install pymysql 查询并接收数据
#导入connection模块
from pymysql import Connection
#获取mysql数据库的链接对象
connConnection(hostlocalhost, #主机名port3306, #端口号userroot, #用户名passwordroot #密码
)
#打印mysql数据库的软件信息
print(conn.get_server_info())
#获取游标对象
cursorconn.cursor()
#选择数据库
conn.select_db(test)
#使用游标执行sql语句
cursor.execute(select * from user)
#接收查询结果
result:tuplecursor.fetchall()
print(result)#((1, lili), (2, lan))
#对查询结果遍历
for i in result:print(i)
#关闭数据库链接
conn.close()
数据插入
#导入connection模块
from pymysql import Connection
#获取mysql数据库的链接对象
connConnection(hostlocalhost, #主机名port3306, #端口号userroot, #用户名passwordroot #密码
)
#打印mysql数据库的软件信息
print(conn.get_server_info())
#获取游标对象
cursorconn.cursor()
#选择数据库
conn.select_db(test)
#使用游标执行sql语句
cursor.execute(insert into user values(3,kate))
#确认
conn.commit()
#conn.rollback()#回滚
#关闭数据库链接
conn.close()
注意在数据插入时必须提交才能成功。