文章目录

首先请大家看一下错误信息:

Traceback (most recent call last):
  File "C:\Python27\lib\site-packages\pyramid\mako_templating.py", line 192, in
__call__
    result = template.render_unicode(**system)
  File "C:\Python27\lib\site-packages\mako\template.py", line 311, in render_uni
code
    as_unicode=True)
  File "C:\Python27\lib\site-packages\mako\runtime.py", line 661, in _render
    return context._pop_buffer().getvalue()
  File "C:\Python27\lib\site-packages\mako\util.py", line 136, in getvalue
    return self.delim.join(self.data)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 151: ordina
l not in range(128)

如果也提示了这个信息,但页面的编码什么都正确的很可能就是遇到了跟我一样的问题。解决方法在注意__init__.py文件的内容。我这边的情况是工程的__init__.py文件中有下面一段内容就会出现这个错误。

1
2
3
4
5
6
7
8
9
10
11
def main(global_config, **settings):
""" This function returns a Pyramid WSGI application.
"""
engine = engine_from_config(settings, 'sqlalchemy.')
DBSession.configure(bind=engine)
config = Configurator(settings=settings)
config.add_static_view('static', 'static', cache_max_age=3600)
config.add_route('home', '/')
config.add_route('getcategories','/get_categories')#获取wp类别信息
config.scan()
return config.make_wsgi_app()

注意其中的注释的位置,当注释跟在config.add_route语句后面直接出现中文的情况下就会出现那个问题,然后我对注释做了一下修改。

1
2
3
4
5
6
7
8
9
10
11
12
def main(global_config, **settings):
""" This function returns a Pyramid WSGI application.
"""
engine = engine_from_config(settings, 'sqlalchemy.')
DBSession.configure(bind=engine)
config = Configurator(settings=settings)
config.add_static_view('static', 'static', cache_max_age=3600)
config.add_route('home', '/')
#获取wp类别信息
config.add_route('getcategories','/get_categories')
config.scan()
return config.make_wsgi_app()

将注释改到不同的行上面就不会出现错误了,当时我还以为我的项目名称有问题,特地的新建了一个项目。最后跟以前的另一个项目做对比,发现原来是这个地方出现问题了,看错误提示还真看不出来是什么问题。在此记下,以免以后又遇到这个问题的时候忘了怎么解决。

文章目录