import json
from wsgiref.simple_server import make_server
# demo_app 需要两个参数
# 第0个参数,表示请求路径相关的环境
# 第1个参数,用来返回响应头
# 这个函数需要一个返回值,返回值是一个列表
# 列表里只有一个元素,是一个二进制,表示返回给浏览器的数据
def demo_app(environ,start_response):
# environ是一个字典,保存了很多的数据
# PATH_INFO : 能够获取到用户的访问路径
path = environ['PATH_INFO']
#--------拓展---------------
# 当在浏览器中键入(http://192.168.1.104:8090/login?name=zhangsan&age=17)时,如何在服务器端获取浏览器传来的ame=zhangsan&age=17参数?
# 获取从客户端发来的GET请求
# print(environ.get('QUERY_STRING')) # 写法一
# print(environ['QUERY_STRING']) # 写法二
# 获取从客户端传来的参数name=zhangsan&age=17
# --------拓展结束---------------
print(environ,open('../file/print_environ.txt','w',encoding = 'utf8'))
status_code = '200 OK' # 默认状态码是 200
if path == '/':
response = '欢迎访问首页'
elif path == '/login':
response = json.dumps({
"name":"zhangsan","age":17})
elif path == '/register':
with open('../file/test.txt','r',encoding='utf8') as file:
response = file.read()
else:
status_code = '404 Not Found' # 如果页面没有配置,返回404
response = '页面走丢了'
start_response(status_code,[('Content-Type','text/html;charset=utf8')])
return [response.encode('utf8')] # 浏览器显示的内容
if __name__=='__main__':
# demo_app是一个函数,用来处理用户的请求
httpd = make_server('',8090,demo_app)
sa = httpd.socket.getsockname()
print("Serving Http on", sa[0],"port", sa[1],"...")
httpd.serve_forever()
# 代码的作用是打开电脑的浏览器,并在浏览器里输入http://localhost:8080/xyz?abc
# import webbrowser
# webbrowser.open('http://localhost:8090/xyz?abc')
# httpd.handle_request() # 处理一次请求
httpd.serve_forever() # 服务器在后台一直运行
WSGI_根据不同的请求路径返回不同的内容
当在浏览器里访问
/时,浏览器返回:欢迎访问首页
/login时,浏览器返回:欢迎访问登陆页面
/register时,浏览器返回:欢迎访问注册页面
def demo_app(environ,start_response):
path = environ['PATH_INFO']
if path == '/':
response = '欢迎访问首页'
elif path == '/login':
response = '欢迎访问登陆页面'
elif path == '/register':
response = '欢迎访问注册页面'
else:
status_code = '404 Not Found' # 如果页面没有配置,返回404
response = '页面走丢了'
WSGI_向浏览器返回不同的内容
当在浏览器里访问
/时,浏览器返回:欢迎访问首页
/login时,浏览器返回:json字符串
/register时,浏览器返回:读取的文件内容
def demo_app(environ,start_response):
path = environ['PATH_INFO']
if path == '/':
response = '欢迎访问首页'
elif path == '/login':
response = json.dumps({
"name":"zhangsan","age":17})
elif path == '/register':
with open('../file/test.txt','r',encoding='utf8') as file:
response = file.read()
else:
status_code = '404 Not Found' # 如果页面没有配置,返回404
response = '页面走丢了'