我想添加一个显示单个文本区域的简单表单。
当用户提交表单时,我需要调用一个检查数据有效性的函数并详细说明。
我已经以这种方式在页面中添加了表单:
<td><form method = "get" action = "getnote"> <input type="text" name="note"/> <button type="submit"><img src="/img/validate.jpg" width="20" height="20" /></button></form></td>
使用getnote我想调用一个函数getnote(注释)来检查有效性并将其保存在数据库中。
然后我有:
class HelloWorld(object):
@cherrypy.expose
def index(self):
return "Hello world!"
@cherrypy.expose
def getnote(self, note):
#check and save
getnote.exposed = True
@cherrypy.expose
def HomeP(self):
Session = sessionmaker()
session = Session(bind=engine)
template = loader.load('index.html')
title = "Home page"
ctx = Context(title=title)
return template.generate(ctx).render('html', doctype='html')
然后在localhost / HomeP中有表单并且显示正确,当我填写表单并提交时,浏览器显示路径错误&#34; HomeP / getnote /&#34;失踪。但是我想把getnote称为函数而不是页面!
我已经按照本教程进行了操作,但也许我错过了一些内容: http://cherrypy.readthedocs.org/en/latest/tutorials.html#tutorial-4-submit-this-form
由于
答案 0 :(得分:0)
您确实需要了解所处理技术的基础知识。而StackOverlow的基础是提出好的问题,因此它们对其他人来说是可理解的和有用的。
您有相对表单操作action='getnote'
,它告诉浏览器将其附加到当前路径名。这就是您将表单提交给/HomeP/getnote/
的原因。请改为使用绝对操作,action='/getnote'
。
即使你的“但我想将getnote作为一个函数调用而不是作为一个页面!”听起来像一个废话,我想我有一个想法在哪里指导你。了解AJAX,最终您将能够在后台发送表单。