廖雪峰Python教程实战Day 2 - 编写Web App骨架,运行后不显示网页如何解决

教程代码如下:

python 复制代码
import logging; logging.basicConfig(level=logging.INFO)

import asyncio, os, json, time
from datetime import datetime

from aiohttp import web

def index(request):
    return web.Response(body=b'<h1>Awesome</h1>')

@asyncio.coroutine
def init(loop):
    app = web.Application(loop=loop)
    app.router.add_route('GET', '/', index)
    srv = yield from loop.create_server(app.make_handler(), '127.0.0.1', 9000)
    logging.info('server started at http://127.0.0.1:9000...')
    return srv

loop = asyncio.get_event_loop()
loop.run_until_complete(init(loop))
loop.run_forever()

正常运行完该py代码,打开浏览器输入http://127.0.0.1:9000应该显示网页。

但是我运行完一直触发浏览器下载文件的行为,而不是展示html网页,所下载的文件内容为------ <h1>Awesome</h1>

原因在于index 函数返回的是一个 web.Response 对象,其中 body 设置为包含 <h1>Awesome</h1> 的字节字符串。这种情况下,浏览器将该响应识别为下载文件而不是渲染页面。

解决方法 :将返回的内容的content-Type 设置为 text/html,以明确告诉浏览器返回的是 HTML 内容。修改 index 函数如下:

python 复制代码
def index(request):
    return web.Response(body=b'<h1>Awesome</h1>', content_type='text/html')

修改完之后运行,打开浏览器输入http://127.0.0.1:9000成功显示!

目前先这样设置content_type的值,后面如果出bug了再改~

相关推荐
如竟没有火炬2 分钟前
搜索二维矩阵
数据结构·python·算法·leetcode·矩阵
郝学胜-神的一滴10 分钟前
自动微分实战:梯度下降的迭代实现与梯度清零核心解析
人工智能·pytorch·python·深度学习·算法·机器学习
PILIPALAPENG22 分钟前
第1周 Day 5:前端转型AI,回顾总结🎯
前端·人工智能·python
zzb158029 分钟前
系统提示词-System Prompt 动态组装
人工智能·后端·python·prompt
嫂子的姐夫1 小时前
34-自动化补环境和jsdom补环境
爬虫·python·逆向
羊小猪~~1 小时前
LLM--大模型快速展示(Gradio)
人工智能·python·大模型·llm·部署·gradio·ai算法
数据知道1 小时前
claw-code 源码详细分析:Hooks + Plugins + Skills——扩展三角里,哪一层该稳定、哪一层该开放?
网络·python·ai·claude code
tryCbest1 小时前
Python之Flask开发框架(第五篇)- 使Flask + Vue 构建前后端分离项目教程
vue.js·python·flask
叹一曲当时只道是寻常1 小时前
Python 飞书开放平台自动化配置工具 feishu-auto 使用教程
python·自动化·飞书
2401_827499991 小时前
python核心语法05-模块
java·前端·python