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