如何解决在CherryPy中,是否可以为文件夹名称加上别名?
| 我正在使用CherryPy。我有一个名为“ zh-cn \”的文件夹-这意味着我使用的是中国大陆的书面中文版本-简体中文。 这是我的代码。注意我如何使用下划线?这可行。class ChineseFlashcards:
zh_cn = ChineseFlashcards_zh_cn()
en = ChineseFlashcards_en()
我的问题是我宁愿使用连字符,因为我认为它“更正确”。但是,您可能无法在Python中使用连字符。这不被允许。这将引发错误:
class ChineseFlashcards:
zh-cn = ChineseFlashcards_zh_cn()
en = ChineseFlashcards_en()
我正在寻找的是某种CherryPy属性,该属性将使标识符成为别名。这样的事情(但这是不合法的)
class ChineseFlashcards:
@cherrypy.expose(alias=[\'zh-cn\'])
zh_cn = ChineseFlashcards_zh_cn()
en = ChineseFlashcards_en()
有人对此有解决方案吗?
解决方法
解决方案1:如果您使用的是CherryPy 3.2或更高版本,只需将其命名为“ zh_cn \”。请参阅http://docs.cherrypy.org/dev/concepts/dispatching.html#special-characters
解决方案2:您可以使用ѭ3来绑定不是合法的Python标识符的属性名称:
class ChineseFlashcards:
en = ChineseFlashcards_en()
setattr(ChineseFlashcards,\'zh-cn\',ChineseFlashcards_zh_cn())
, 最简单的解决方案可能是使用您自己的index
方法进行处理。像这样的东西:
class ChineseFlashcards:
zh_cn = ChineseFlashcards_zh_cn()
en = ChineseFlashcards_en()
aliases = {\'zh-cn\': zh_cn}
@cherrypy.expose
def index(self,locale,*args,**kwargs):
if arg in self.aliases:
return aliases[locale](*args,**kwargs)
en
仍将正常工作,zh_cn
仍将正常工作,任何未被识别的网址都将经过ѭ5go,并且它将以自己的别名来查看。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。