继昨天发现wsgi在有点问题而无法使用它来处理web请求后,我在官方文档中看到了一个http.server模块,于是转而研究它而非WSGI。这个模块中有两个重要的类,分别为HTTPServer和BaseHTTPRequestHandler,还有两个示例类,SimpleHTTPRequestHandler,CGIHTTPRequestHandler。还有一个测试方法(test),我参考其中的示例类写了一个HelloWorld程序。上代码:
from http.server import HTTPServer,BaseHTTPRequestHandler
import io,shutil
class MyHttpHandler(BaseHTTPRequestHandler):
def do_GET(self):
r_str="Hello World"
enc="UTF-8"
encoded = ''.join(r_str).encode(enc)
f = io.BytesIO()
f.write(encoded)
f.seek(0)
self.send_response(200)
self.send_header("Content-type", "text/html; charset=%s" % enc)
self.send_header("Content-Length", str(len(encoded)))
self.end_headers()
shutil.copyfileobj(f,self.wfile)
httpd=HTTPServer(('',8080),MyHttpHandler)
print("Server started on 127.0.0.1,port 8080.....")
httpd.serve_forever()
运行代码,成功,浏览器输出正常。
如果将这行代码:
shutil.copyfileobj(f,self.wfile)
改为:
self.wfile.write(r_str)
就会出现昨天的错误。 TypeError: send() argument 1 must be string or buffer, not str
OK,这个错误到此算是有了一个圆满的结局。
各位对于处理web请求还有什么其他的方法麻烦告诉我。唉,又浪费了上班时间,工作了,呵呵,主业不是python。
分享到:
- 2009-03-25 09:58
- 浏览 10331
- 评论(0)
- 论坛回复 / 浏览 (0 / 4026)
- 查看更多
相关推荐
在这个系统中,Python可能使用了如Flask或Django这样的Web框架,负责处理HTTP请求,数据库操作,以及与Vue.js前端进行数据交互。 Vue.js 3.0是这个系统前端的核心,它提供了组件化开发模式,使得开发者可以将UI拆分...
在本教程中,我们将深入探讨如何在Ubuntu系统上使用Daphne和Nginx部署Python Django项目,同时利用Supervisor进行进程管理。首先,Django 3.0开始支持ASGI(Asynchronous Server Gateway Interface)应用程序,使得...
《GoWeb编程》采用了CC BY-SA 3.0许可证,意味着其他人可以在遵守相应条件的情况下自由地使用和修改内容,代码则遵循 BSD 3-Clause 许可证。 ### 结语 《GoWeb编程》不仅是一本关于Go语言Web开发的书籍,更是一个...
- 在3.0版本中,XML-RPC库通常提供客户端和服务器端的API,方便开发者创建和处理XML-RPC请求。例如,在Python中,有`xmlrpc.client`(客户端)和`xmlrpc.server`(服务器端)模块。 - 服务器端需要定义可以被远程...
- 在 BI 大屏项目中,Koa 服务器通常用于处理 HTTP 请求,对接后端数据源,如数据库或API接口,为前端提供数据服务。开发者可能会用到 Koa 中间件来处理路由、认证、错误处理等任务。 - Koa 的可扩展性很强,可以...
- Web3.0,也被称为语义Web,强调机器理解和处理信息,物联网、大数据和云计算是其特征。 - Web4.0则进一步扩展了智能互联,如人工智能和增强现实等技术的应用。 4. **Web服务(Web Service)**: - Web服务允许...
在IT行业中,尤其是在Web开发领域,理解和掌握"UOF资料统计学习笔记"中的知识点是至关重要的。UOF可能指的是某个特定的技术或者框架,但由于信息有限,这里我们将基于Web开发的相关内容进行深入探讨。 首先,我们要...
对于POST和PUT请求,通常在请求体中传递JSON格式的数据来指定操作参数。 H3C CAS REST API接口提供了多种功能,例如: 1. 虚拟机管理:创建、查询、启动、停止、重启和销毁虚拟机。 2. 网络资源管理:创建、修改和...
在Selenium 3.0中,WebDriver被引入取代了Selenium RC,其Client与Server之间通过HTTP请求进行通信。 pandas是一个开源的Python库,专注于数据分析。它提供了高效的数据结构和数据分析工具,特别适合进行数据的读写...
XML请求和响应包含在HTTP报文中,使得不同系统间的通信变得标准化和可理解。 总结,XML操作涵盖了从解析、创建到查询、验证的多个方面。掌握这些技术,可以帮助我们更好地处理XML数据,实现数据的有效管理和传输。...
在Linux环境下,你可能需要使用curl或wget命令来发送HTTP请求,或者使用编程语言(如Java、Python、JavaScript等)编写代码来实现地图下载功能。如果你使用Java,可以利用HttpURLConnection或者Apache HttpClient库...
12. ASP.NET的六个内置对象包括Response(响应)、Request(请求)、Server(服务器)、Application(应用程序)、Session(会话)和Cookie,用于处理HTTP请求和响应。 13. Python代码`ss = list(set("jzzszyj"))`将...
运行"RunLocalServer.py"之前,确保你已经安装了必要的依赖库,例如 Flask 或 HTTPServer,这些都是常见的Python HTTP服务器实现。一旦服务器启动,你可以在浏览器中输入指定的URL(通常是localhost加上端口号)来...
你可以定义一个装饰器来识别WebSocket请求,并在视图中使用`await`关键字处理异步操作。 同时,别忘了在urls.py中配置WebSocket的URL,这样Django就能正确地路由WebSocket请求。通常,你会使用一个特定的路径前缀,...
9. **Web部署工具**:微软的Web Deploy(以前称为Web Deploy 3.0)是一款用于发布和更新IIS网站的工具,它可以自动化处理文件同步、数据库迁移等复杂任务。 10. **最新版本**:IIS随Windows Server版本更新而发展,...
烧瓶应用 我可以在其中存储烧瓶模板应用程序的巨大文件夹。 概述 ... 是Flask之上的框架,可自动处理使用OpenAPI(以前称为Swagger)定义的HTTP请求,同时支持该规范的v2.0和v3.0。 是一个ORM / OD
它能够处理大量并发请求,确保Web应用在高流量环境下依然能正常运行。这得益于其优秀的线程管理和内存管理策略。 4. **API扩展**:Tomcat 支持通过简单的API进行扩展,允许开发者自定义服务器的行为,例如添加新的...