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

web.py使用时报错AttributeError: No template named image_window

 在使用python的web.py框架做前后端时遇到问题。

问题代码主要如下,当加上main(iamge_name)这行代码后就会报错。报错信息包含两个:第一是找不到image_window模板;第二是gbk无法解码...

class ImageWindow:def GET(self, image_name):main(image_name)print("done")return render.image_window()

解决:

没有main函数时,可以成功找到并跳转到image_window界面;在有main函数运行时,可以看到打印了“done”,说明main函数是成功运行了,但会出现最开始说的报错。那么为什么加入正常运行的一个函数后,会导致报错呢?

原因在于,main函数中涉及了文件处理,使用以下代码改变了当前目录。

os.chdir(os.path.dirname(__file__))

当GET方法运行完main函数回来时,当前目录已经被改变了,导致无法找到相应的image_window模板。而编码错误是衍生错误,具体原因如下: 

当第一个错误发生后,Web.py尝试生成调试错误页面(debugerror.py)在生成调试页面时,系统尝试用GBK编码读取你的Python源文件(可能是app.py)但你的源文件中包含UTF-8编码的特殊字符(比如注释中的中文),导致解码失败

所以在main函数的头尾分别加上这两行代码,使运行完main函数回到GET方法时,工作目录不变

original_dir = os.getcwd()    # 保存原始目录os.chdir(original_dir)    #恢复原始目录

相关文章:

  • RTMP协议解析【二】
  • 下一代电子电气架构(EEA)的关键技术
  • 运行时runtime是什么?(程序在运行过程中所依赖的环境、资源管理机制以及动态行为的总和)(包括内存分配、异常处理、线程调度、类型检查、资源访问等)
  • RAG知识库SentenceSplitter分段问题分析与优化方案
  • 操作系统理解(xv6)
  • NC028NQ472美光固态颗粒NQ484NQ485
  • 第五章 GPT模块配置
  • centos系统redis-dump安装
  • FPGA开发全流程
  • bitbar环境搭建(ruby 2.4 + rails 5.0.2)
  • MCU 上电不启动的常见原因分析与排查思路
  • Transformer到底解决什么问题?
  • R语言速查表
  • 【Django】Django DRF 中如何手动调用分页器返回分页数据(APIView,action场景)
  • Windows系统编译GSL与VS2022联合编程
  • 从零基础到最佳实践:Vue.js 系列(3/10):《组件化开发入门》
  • 链表day3
  • 【初识】内网渗透——基础概念,基本工具使用
  • 远程访问家里的路由器:异地访问内网设备或指定端口网址
  • Go语言中new与make的深度解析
  • 牡丹江网站建设公司/整合营销名词解释
  • 成都专门做公司网站的公司/百度我的订单app
  • 昆明网站建设公司推荐/最佳的资源磁力搜索引擎
  • 提交网站的入口地址/搜索关键词排名优化软件
  • php如何做音乐网站/镇江网站关键字优化
  • dedecms一键更新网站/关键seo排名点击软件