我的代码:
模型/ db.py
....
dbmy = DAL('mysql://user:user@localhost/test',migrate_enabled=False)
dbmy.define_table('Firewall', Field('disabled','text'),
Field('src_port_first','integer'),
Field('src_port_last','integer'),
Field('port_first','integer'),
Field('port_last','integer'),
Field('type','text'),
Field('Src_op','text'),
Field('src_ipaddr_first','text'),
Field('src_ipaddr_last','text'),
Field('src_netmask','text'),
Field('Dst_op','text'),
Field('dst_ipaddr_first','text'),
Field('dst_ipaddr_last','text'),
Field('dst_netmask','text'),
Field('Action','text'))
dbmy.commit()
控制器/ select.py:
# -*- coding: utf-8 -*-
from gluon.tools import Crud
crud=Crud(dbmy)
def search():
return dict(form=crud.search(dbmy.Firewall))
如果我尝试127.0.0.1:8000/[app]/select/search/Firewall
网址,页面会写下:
无效视图(select / search.html)
答案 0 :(得分:2)
当你的控制器动作返回一个字典时,web2y需要一个相关的视图文件 - 在这种情况下,它会查找/views/select/search.html。您必须创建该视图。
或者,您可以在这种情况下启用generic.html view。请注意,在脚手架应用程序中,所有通用视图仅针对本地请求启用,否则禁用(由于安全性问题)。
您还可以通过response.view
指定其他视图。
最后,根据您的控制器代码,没有理由在您的URL中添加“防火墙”,因为search
函数已经硬编码以搜索db.Firewall
表(事实上,{ {1}}函数完全忽略URL中的“防火墙”。