Web2py 默认功能/控制器不工作
Web2py Default Function / Controller Not Working
这是我在 web2py/applications/myapp/routes.py 文件中的内容(这是预加载的,只是添加了 BASE 参数):
from fileutils import abspath
from languages import read_possible_languages
possible_languages = read_possible_languages(abspath('applications', app))
#NOTE! app - is an application based router's parameter with name of an
# application. E.g.'welcome'
routers = dict(
app= dict(
default_language = possible_languages['default'][0],
languages = [lang for lang in possible_languages
if lang != 'default'],
),
BASE= dict(
default_application = 'myapp',
default_controller = 'default',
default_function = 'index',
functions = ['my', 'functions', 'are', 'here'],
)
)
我访问 127.0.0.1:8000 时被路由到欢迎应用程序,当我访问 127.0.0.1:8000/function 和 127.0.0.1:8000/myapp/function 时收到索引错误。我重新加载了路线。这是我的 web2py 目录中唯一的 routes.py 文件。
首先,当使用特定于应用程序的 routes.py 文件时,您必须在根 /web2py 文件夹中仍然有一个 routes.py 文件,并且您必须使用 routes_app
来指定路由到应用程序(请参阅文档 this section 末尾的 "Application-Specific URL rewrite" 部分)。
其次,当使用基于参数的重写系统时(即定义 routers
字典时),您根本不需要为特定于应用程序的 routes.py 文件而烦恼。相反,只需在 /web2py 文件夹中使用单个 routes.py 文件,并在 routers
字典中为每个需要自定义路由的应用程序指定一个单独的键("BASE" 键适用于所有应用程序) . (从技术上讲,您可以拥有特定于应用程序的 routes.py 文件,但与将所有内容都保留在主 routes.py 文件中相比并没有太多好处)。
最后,在上面的 routes.py 文件中,您必须在某处定义 app
变量(它应该是应用程序的名称)或将其替换为应用程序的名称。
这是我在 web2py/applications/myapp/routes.py 文件中的内容(这是预加载的,只是添加了 BASE 参数):
from fileutils import abspath
from languages import read_possible_languages
possible_languages = read_possible_languages(abspath('applications', app))
#NOTE! app - is an application based router's parameter with name of an
# application. E.g.'welcome'
routers = dict(
app= dict(
default_language = possible_languages['default'][0],
languages = [lang for lang in possible_languages
if lang != 'default'],
),
BASE= dict(
default_application = 'myapp',
default_controller = 'default',
default_function = 'index',
functions = ['my', 'functions', 'are', 'here'],
)
)
我访问 127.0.0.1:8000 时被路由到欢迎应用程序,当我访问 127.0.0.1:8000/function 和 127.0.0.1:8000/myapp/function 时收到索引错误。我重新加载了路线。这是我的 web2py 目录中唯一的 routes.py 文件。
首先,当使用特定于应用程序的 routes.py 文件时,您必须在根 /web2py 文件夹中仍然有一个 routes.py 文件,并且您必须使用 routes_app
来指定路由到应用程序(请参阅文档 this section 末尾的 "Application-Specific URL rewrite" 部分)。
其次,当使用基于参数的重写系统时(即定义 routers
字典时),您根本不需要为特定于应用程序的 routes.py 文件而烦恼。相反,只需在 /web2py 文件夹中使用单个 routes.py 文件,并在 routers
字典中为每个需要自定义路由的应用程序指定一个单独的键("BASE" 键适用于所有应用程序) . (从技术上讲,您可以拥有特定于应用程序的 routes.py 文件,但与将所有内容都保留在主 routes.py 文件中相比并没有太多好处)。
最后,在上面的 routes.py 文件中,您必须在某处定义 app
变量(它应该是应用程序的名称)或将其替换为应用程序的名称。