2

如何使用连字符重命名 web2py 中的现有应用程序?

例如,我想将welcome应用程序重命名为my-app. 我尝试简单地将/applications/welcome文件夹重命名为/applications/my-app,但是,这只是从管理员中删除了欢迎应用程序,并且当我尝试访问 url 时:

http://localhost:8000/my-app/default/index

我收到消息:

invalid request
4

2 回答 2

5

事实证明,web2py 在应用程序目录中带有连字符的文件夹名称存在问题。我注意到在my-app通过管理界面创建应用程序时,它创建了一个名为my_app.

任何名称中带有连字符的应用程序都不会被 web2py 识别!

这与python中的有效标识符只能包含字母、数字和下划线这一事实有关。

如果必须在 url 中使用连字符,解决方案是将map_hyphendict 值设置Trueroutes.py文件中的基本目录或特定于应用程序的位置 。这会将 url 请求中的传入连字符转换为下划线,然后更改您的传出下划线URL 中的连字符的目录结构。默认情况下,此行为False在默认路由器中设置为。

如果您碰巧将欢迎脚手架更改为带有连字符的东西,我希望这可以使某人免于头痛。;)

于 2013-07-07T01:32:10.100 回答
1

尝试点击管理应用主页右上角的“重新加载路由”按钮,或重新启动服务器。

于 2013-07-07T01:31:03.800 回答