Bottle: 全局变量 'request' 未定义
我正在用Python创建一个基于网页的应用程序,用户可以在里面输入搜索内容,然后返回相关数据。我使用了Bottle这个框架来搭建网站。接着,我用OpenShift把它发布到网上。这是一个简单的提交表单,用户输入的搜索条件会在后面的部分使用:
@route('/')
def search():
return '''
<h1 align="center">Twitter Sentiment Analysis</h1>
<p align="center">Enter what you would like to search in the search box below</p>
<form action="/result" method="post" align="center">
Search: <input name="search" type="text" />
<input value="Search" type="submit" />
</form>
'''
@route('/result', method='POST')
def result():
search = request.forms.get('search')
return 'it worked'
在使用Bottle进行测试时,一切都运行得很好,但当我尝试把它部署到OpenShift时,却出现了一个名称错误,提示“全局变量'request'未定义”。在测试时,使用Bottle一切正常,但在部署到OpenShift后就出问题了。有没有人知道这可能是什么原因呢?
1 个回答
6
看起来你还没有把请求(request)或者路由(route)导入到命名空间里:
from bottle import get, post, request # or route
@get('/login') # or @route('/login')
def login():
return '''
<form action="/login" method="post">
Username: <input name="username" type="text" />
...
'''
@post('/login') # or @route('/login', method='POST')
def do_login():
user = request.forms.get('username')
pass = request.forms.get('password')
...