随笔

构造简单的POST请求并提交数据
from urllib.request import Request,urlopen
from urllib.parse import urlencode
from pprint import pprint
url="http://httpbin.org/post"
form={"name":"Peter","age":20}
#将form字典表转换成URL查询字符串的形式
data=urlencode(form)
#将data转换为字节,默认为UTF-8
data=data.encode()
#构造url请求<url:网址><data:传输的数据>
req=Request(url,data=data)
#声明响应对象
rsp=urlopen(req)
#读取正文到字节
b=rsp.read()
#解码
b=b.decode()
pprint(b)

输出结果:

('{\n'
 '  "args": {}, \n'
 '  "data": "", \n'
 '  "files": {}, \n'
 '  "form": {\n'
 '    "age": "20", \n'
 '    "name": "Peter"\n'
 '  }, \n'
 '  "headers": {\n'
 '    "Accept-Encoding": "identity", \n'
 '    "Content-Length": "17", \n'
 '    "Content-Type": "application/x-www-form-urlencoded", \n'
 '    "Host": "httpbin.org", \n'
 '    "User-Agent": "Python-urllib/3.6"\n'
 '  }, \n'
 '  "json": null, \n'
 '  "origin": "52.83.221.03, 59.83.201.53", \n'
 '  "url": "https://httpbin.org/post"\n'
 '}\n')
使用CGI搭建服务器

文件目录
在这里插入图片描述
服务器代码:

from http.server import HTTPServer , CGIHTTPRequestHandler
port=80
server_address=("",port)
#使用HTTPServer创建一个实例<服务器地址(元组)>:server_address,<处理器>:CGIHTTPResquestHandler
server_obj=HTTPServer(server_address,CGIHTTPRequestHandler)
#启动服务器
server_obj.serve_forever()

Browser端交互代码:

import cgi
print("Content-type: text/html \n")
form=cgi.FieldStorage()

html="""
<!DOCTYPE  html>
<html lang="zh">
	<head>
		<meta  charset="GBK"  />
		<meta  http-equiv="X-UA-Compatible"  content="IE=edge" />
		<meta  name="viewport" content="width=device-width,initial-scale="1"/>
		<link href="https://cdn.bootcss.com/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
		<link href="https://cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
		<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
		<script src="https://cdn.bootcss.com/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>
		<title>CGItext</title>
	</head>
	<body>
		<div class="container">
			<table class="table">
				<tr>
					<th>姓名</th>
					<th>年龄</th>
				</tr>
				<tr>
					<td>{name}</td>
					<td>{age}</td>
				</tr>
			</table>
			
		</div>
	</body>
</html>"""
datas=dict.fromkeys(["name","age"])
for data in datas.items():
	datas[data[0]]=form[data[0]].value if data[0] in form else "值不存在"

print(html.format_map(datas))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值