讨论区 老师答疑区 主题详情
滔ykt1546661807879
置顶 精华 老师参与 我写的源码,输出的结果和我预想的不一致,不知道哪里报错,源码已在详细说明中

from http.server import HTTPServer,BaseHTTPRequestHandler

from http import cookies

from urllib.parse import parse_qs



form='''<!DOCTYPE html>

<title>小心,网站正在读取你的信息</title>

<p>

{}

</p>

<form method="POST">

<label>请输入年龄

<input type="text" name="yourage">

</label>

<br>

<button type="submit">傻乎乎的提交年龄</button>

</form>

'''


class ageHandler(BaseHTTPRequestHandler):

def do_POST(self):

length=int(self.headers.get('Content-length',0))


data=self.rfile.read(length).decode()

yourage=parse_qs(data)["yourage"][0]


c=cookies.SimpleCookie()

c['yourage']=yourage

c['yourage']['domain']='localhost'

c['yourage']['max-age']=60


self.send_response(303)

self.send_header('Location','/')

self.send_header('Set_Cookie',c['yourage'].OutputString())

self.end_headers()


def do_GET(self):

message="您好,请输入年龄!"


if 'cookie' in self.headers:

try:

c=cookies.SimpleCookie(self.headers['cookie'])

age=c['yourage'].value

if int(age) > 40:

message = "年龄大了"

elif int(age) > 25:

message = "年龄刚刚好"

else:

message = "好好学习"

except (KeyError, cookies.CookieError) as e:

message="好你了,别输入错误了"

print(e)


self.send_response(200)

self.send_header('Content-type','text/html;charset=utf-8')

self.end_headers()


mesg=form.format(message)

self.wfile.write(mesg.encode())


if __name__=='__main__':

server_address=('',9999)

httpd=HTTPServer(server_address,ageHandler)

httpd.serve_forever()


课程

所有回复(1)

置顶 精华

您好,感谢您对乐学偶得的支持!

您看看您的代码的这一行

  1. self.send_header('Set_Cookie',c['yourage'].OutputString())
改为:

  1. self.send_header('Set-Cookie', c['yourage'].OutputString())

看看能够解决哦~

加油!

2021-1-18

回复

代码语言
字号
发布

发表观点要登录哦!

最近活动:2021-1-18
创建时间:2021-1-18
浏览次数:119
关注人数:1

使用协议与隐私政策

感谢您使用网易云课堂!

为了更好地保障您的个人权益,请认真阅读《使用协议》《隐私政策》《服务条款》的全部内容,同意并接受全部条款后开始使用我们的产品和服务。若不同意,将无法使用我们的产品和服务。

同意
手机课堂
下载App
返回顶部