欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

廖雪峰WSGI接口简单应用实现报错问题

程序员文章站 2022-06-06 19:34:22
...

资源链接:
[廖雪峰老师WSGI接口]
参考博文

因为最近在看django,然后在学习django工作流程时,看到第一步浏览器向服务器WSGI发送请求,因为没有了解过WSGI是啥,所以搜了一下,在看廖雪峰老师的WSGI接口文章并实现其中的简单应用的时候,因为python的版本不一样,程序报了错误,这里记录一下解决方案。

先上简单应用的代码:

简单应用一:

# hello.py
def application(environ, start_response):
    start_response('200 OK', [('Content-Type', 'text/html')])
    return '<h1>Hello, web!</h1>'   # python3正确写法:return ['<h1>hello,web!</h1>'.encode('utf-8')]
# server.py
from wsgiref.simple_server import make_server        # 从wsgiref模块导入:
from hello import application			# 导入我们自己编写的application函数:


httpd = make_server('', 8000, application)		# 创建一个服务器,IP地址为空,端口是8000,处理函数是application:
print "Serving HTTP on port 8000..."
httpd.serve_forever()		# 开始监听HTTP请求:

报错解决方案:https://www.cnblogs.com/tramp/p/5383381.html

简单应用二:动态获取url的值
原代码:

# hello.py
def application(environ, start_response):
    start_response('200 OK', [('Content-Type', 'text/html')])
    return '<h1>Hello, %s!</h1>' % (environ['PATH_INFO'][1:] or 'web')
# server.py
from wsgiref.simple_server import make_server        # 从wsgiref模块导入:
from hello import application			# 导入我们自己编写的application函数:


httpd = make_server('', 8000, application)		# 创建一个服务器,IP地址为空,端口是8000,处理函数是application:
print "Serving HTTP on port 8000..."
httpd.serve_forever()		# 开始监听HTTP请求:

修改后代码:

#hello.py
def application(environ, start_response):
    start_response('200 OK', [('Content-Type', 'text/html')])
    return [('<h1>Hello, %s!</h1>' % (environ['PATH_INFO'][1:] or 'web')).encode('utf-8')]
# server.py
from wsgiref.simple_server import make_server        # 从wsgiref模块导入:
from hello import application			# 导入我们自己编写的application函数:


httpd = make_server('', 8000, application)		# 创建一个服务器,IP地址为空,端口是8000,处理函数是application:
print "Serving HTTP on port 8000..."
httpd.serve_forever()		# 开始监听HTTP请求:
相关标签: WSGI