如何使用连字符重命名web2py中的现有应用程序?
例如,我想将welcome
应用程序重命名为my-app
。我尝试将/applications/welcome
文件夹重命名为/applications/my-app
,然而,这只是从管理员中删除了欢迎应用,当我尝试访问该网址时:
http://localhost:8000/my-app/default/index
我收到消息:
invalid request
答案 0 :(得分:5)
事实证明,web2py在应用程序目录中的连字符文件夹名称存在问题。我注意到在通过管理界面创建应用my-app
时,它创建了一个名为my_app
的应用。
web2py无法识别名称中带有连字符的任何应用程序!
这与python中的有效标识符只能包含字母,数字和下划线这一事实有关。
如果必须在网址中使用连字符,解决方案是将map_hyphen
dict值设置为True
文件中routes.py
的基本目录或应用 - 特定位置这会将url请求中的传入连字符转换为下划线,然后将目录结构中的传出下划线更改为URL中的连字符。默认情况下,此行为在默认路由器中设置为False
。
我希望如果你碰巧改变了欢迎脚手架到连字符的东西,这可以让别人免于头疼。 ;)
答案 1 :(得分:1)
尝试点击管理员应用主页右上角的“重新加载路由”按钮,或重新启动服务器。