我正在编写一个小的web门户,它将允许用户为计算语言学项目注释一些文本,并将注释保存到文件中。在
我无法保存修改后的文本。在
我的页面是:
from bottle import template
from project import app
from bottle import request
from bottle import redirect
import random
@app.route('/')
def index():
notices = 'This is a placeholder text for StackOverflow'
return template('annotator/index', package=notices)
@app.route('/annotator/submit', method=['GET'])
def submit():
with open('output.txt', 'w') as outfile:
package = str(request.GET.get('package'))
outfile.write(str(package))
redirect('/')
我的页面布局是:
^{pr2}$提交页面是:
<form action="annotator/submit" method="post">
<dl>
Thank you
</dl>
</form>
%rebase layout/layout
但是,文件中只保存了单词“submit”,而不是的内容,这是我想要保存的内容,因为它将是注释的结果。在
这是我的第一个网络应用程序,我有点困惑。在
您的textarea和submit表单项都命名为“package”。在
将您的按钮改为这个,看看这是否有帮助:
编辑:说明
有两个同名表单项的问题是,应用程序在查询字符串中同时接收它们。例如
http://yourserver.com/annotator/submit?package=sometext&package=Submit
在您的应用程序中,您将有效地获得查询参数的dict,它看起来像
{'package': 'sometext'}
或{'package': 'Submit'}
。得到哪一个完全取决于应用程序(瓶子),但是最有可能的是按顺序处理查询参数的实现会导致第二个值优先,因为它会覆盖第一个值。在大多数web框架都公开了一种获取给定名称的所有查询参数的方法;在瓶瓶中,它是request.query.getall。因此
request.query.getall('package')
将返回['sometext', 'Submit']
。但是在您的例子中,首先避免名称冲突比保留它然后检索多个值更有意义。在希望有帮助!在
相关问题 更多 >
编程相关推荐