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

教程代码如下:

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 函数如下:

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

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

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

最近更新

  1. TCP协议是安全的吗?

    2024-02-02 00:24:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-02 00:24:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-02 00:24:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-02 00:24:02       18 阅读

热门阅读

  1. Python 机器学习 K-近邻算法

    2024-02-02 00:24:02       38 阅读
  2. go语言-字符串处理的常用函数

    2024-02-02 00:24:02       27 阅读
  3. Docker

    2024-02-02 00:24:02       27 阅读
  4. go install

    2024-02-02 00:24:02       40 阅读
  5. Redis的过期策略和内存淘汰机制

    2024-02-02 00:24:02       31 阅读
  6. Spring Cloud Gateway 修改请求体、响应体

    2024-02-02 00:24:02       31 阅读
  7. 重回一年级,请问你们还知道余数是什么吗

    2024-02-02 00:24:02       25 阅读
  8. Git分布式版本控制系统

    2024-02-02 00:24:02       29 阅读
  9. 【LNMP】RHEL8.3安装LNMP并配置freetds连接MSSQL

    2024-02-02 00:24:02       30 阅读
  10. 【C语言】va_list(可变参数处理)

    2024-02-02 00:24:02       28 阅读
  11. 工厂方法入门

    2024-02-02 00:24:02       35 阅读