开发者学堂课程【Python 入门 2020年版:WSGI 不同路径返回不同内容 & amp;HTTP 状态码】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/639/detail/10483
WSGI 不同路径返回不同内容 & amp;HTTP 状态码
内容介绍
一、WSGI 不同路径返回不同内容
二、HTTP 状态码
一、WSGI 不同路径返回不同内容
代码:
from wsgiref.simple_server import make_server
def demo_app(environ,start_response):
path=environ[‘PATH_INFO’]
status_code=’200 OK’
if path == '/':
response =’欢迎来到我的首页'
elif path =='/test':
response = '欢迎来到test页面'
elif path == ‘/demo' :
response = '欢迎来到demo页面'
else:
status_code=’404 Not Found’
response = '页面走丢了’
start_response(‘status_code’,[(‘Content-Type,’text/html;charset=utf8’)])
return [‘response’.encode(‘utf8’)]
if_ name_=='_ main_ ':
httpd : make_server(‘’, 8080, demo_app):
sa = httpd.socket. getsockname()
print("Serving HTTP on", sa[0], "port", sa[1], "...")
httpd.serve_forever()
默认状态码是 200,如果页码没有配置,返回 404
运行:
访问 127.0.0.1:8080/demo,显示欢迎来到 demo 页面
访问 127.0.0.1:8080/index,显示页面走丢了,状态码是 404
OK 和 Not Found 是可以改的,用户是看不到的,但在 network 里可以看到状态,一般访问页面 404 后都会跳转到页面走丢。
二、HTTP 状态码
状态码:RESTFUL==>前后端分离
1. 2xx:OK,请求响应成功
2. 3xx:重定向
如图示:
为什么它是 3 开头的呢,因为它其实是到了 404,但结果进行了跳转就变成 304了。
3. 4xx:客户端的错误。 404 客户端访问了一个不存在的地址 405:请求方式不被允许
4. 5xx:服务器的出错。
例:在欢迎来的我的首页加个 1/0,这个地方服务器会崩。
from wsgiref.simple_server import make_server
def demo_app(environ,start_response):
path=environ[‘PATH_INFO’]
status_code=’200 OK’
response = 'hello'
if path == '/':
1/0
response =’欢迎来到我的首页'
elif path =='/test':
response = '欢迎来到test页面'
elif path == ‘/demo' :
response = '欢迎来到demo页面'
else:
status_code=’404 Not Found’
response = '页面走丢了’
start_response(‘status_code’,[(‘Content-Type,’text/html;charset=utf8’)])
return [‘response’.encode(‘utf8’)]
if_ name_=='_ main_ ':
httpd : make_server(‘ ’, 8080, demo_app):
sa = httpd.socket. getsockname()
print("Serving HTTP on", sa[0], "port", sa[1], "...")
httpd.serve_forever()
重启运行一下服务器
发现这个错误就是500
注:
为什么配置的地址可以写成空号:httpd : make_server(‘ ’, 8080, demo_app):
如果不写的话就相当于这个地址是 0.0.0.0