操作 HTTP 请求头部
在 Tornado 中,你可以通过 self.request.headers 访问请求头部。以下是一个例子,演示如何获取和操作请求头:
import tornado.ioloop
import tornado.web
class HeaderHandler(tornado.web.RequestHandler):
def get(self):
# 获取 User-Agent 头
user_agent = self.request.headers.get("User-Agent", "Unknown")
self.write(f"User-Agent: {user_agent}")
# 添加自定义头
self.set_header("Custom-Header", "Custom Value")
if __name__ == "__main__":
app = tornado.web.Application([
(r'/', HeaderHandler),
])
app.listen(8888)
print("Server is running at http://localhost:8888")
tornado.ioloop.IOLoop.current().start()
在这个例子中,通过 self.request.headers.get("User-Agent", "Unknown") 获取了请求头中的 User-Agent,并通过 self.set_header("Custom-Header", "Custom Value") 添加了一个自定义头。
操作 HTTP 响应头部
在 Tornado 中,你可以通过 self.set_header 方法设置响应头。以下是一个例子,演示如何设置响应头:
import tornado.ioloop
import tornado.web
class HeaderHandler(tornado.web.RequestHandler):
def get(self):
# 设置 Content-Type 头
self.set_header("Content-Type", "text/html; charset=utf-8")
self.write("Hello, Tornado!")
if __name__ == "__main__":
app = tornado.web.Application([
(r'/', HeaderHandler),
])
app.listen(8888)
print("Server is running at http://localhost:8888")
tornado.ioloop.IOLoop.current().start()
在这个例子中,通过 self.set_header("Content-Type", "text/html; charset=utf-8") 设置了响应头中的 Content-Type。
操作 URL
在 Tornado 中,你可以通过 self.request.uri 或 self.request.path 访问请求的 URL。以下是一个例子,演示如何获取和操作 URL:
import tornado.ioloop
import tornado.web
class URLHandler(tornado.web.RequestHandler):
def get(self):
# 获取完整的 URL
full_url = self.request.uri
self.write(f"Full URL: {full_url}")
# 获取路径部分
path = self.request.path
self.write(f"Path: {path}")
if __name__ == "__main__":
app = tornado.web.Application([
(r'/', URLHandler),
])
app.listen(8888)
print("Server is running at http://localhost:8888")
tornado.ioloop.IOLoop.current().start()
在这个例子中,通过 self.request.uri 获取了完整的 URL,通过 self.request.path 获取了路径部分。
这些是一些基本的 Tornado 中操作 HTTP 请求头部和响应头部,以及 URL 的示例。具体的需求可能会涉及更多的细节和定制,Tornado 提供了灵活的 API 来满足这些需求。
转载请注明出处:http://www.zyzy.cn/article/detail/7433/Tornado