当前位置: 首页 > article >正文

廖雪峰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了再改~


http://www.kler.cn/a/231669.html

相关文章:

  • Gin HTML 模板渲染
  • event_base
  • 正则表达式语法详解(python)
  • DB Type
  • Win10/11 安装使用 Neo4j Community Edition
  • 计算机组成原理笔记----基础篇
  • 【element-ui】输入框组件el-input输入数字/输出Number类型:type=“number“、v-model.number用法
  • 【实训】自动运维ansible实训(网络管理与维护综合实训)
  • Javascript第十二个知识点:Dom
  • 前端开发:(三)CSS入门
  • 【GAMES101】Lecture 17 材质
  • MySQL进阶查询篇(2)-索引的优化和使用场景
  • C语言什么是悬空指针?
  • 6.electron之上下文隔离,预加载JS脚本
  • Windows搭建Emby媒体库服务器,无公网IP远程访问本地影音文件
  • MySQL数据库基础与SELECT语句使用梳理
  • DC-7靶机渗透详细流程
  • 案例分享:频域与时域仿真的区别
  • 机器学习1一knn算法
  • 如何使用phpStudy搭建网站并结合内网穿透远程访问本地站点
  • @RequestBody、@RequestParam、@RequestPart使用方式和使用场景
  • 线程之间如何通信?
  • 制作jdk17+pinpoint-agent基础镜像
  • Unity类银河恶魔城学习记录4-1,4-2 Attack Logic,Collider‘s collision excepetion源代码 P54 p55
  • Rust开发WASM,浏览器运行WASM
  • 虚继承 -- 解决菱形继承问题以及无法跨继承访问