2014-09-03 110 views
2

我正在用python创建一个基于web的应用程序,用户输入一个搜索查询并返回数据。我用瓶子为此提供了Web框架。然后使用Openshift在线发布。这是一个简单的POST形式和搜索条件,然后在下一节中使用该用于:Bottle:未定义全局变量'请求'

@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'  

当使用奶瓶和测试它,它工作得很好,但是当我尝试将它部署到OpenShift,我得到一个名字错误,“全局变量”请求'没有被定义“,当测试它在使用openshift之前完全用瓶工作时,有没有人知道这可能是为什么?

+1

这是什么显示在你的日志文件? – 2014-09-03 23:49:13

+0

NameError:未定义全局名称“请求”。 – Donnacha 2014-09-04 00:31:09

+0

猜测来自'search = request.forms.get(search)'这一行? – Donnacha 2014-09-04 00:32:37

回答

4

好像你还没有导入的请求或路线的命名空间:

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') 
    ... 
+0

你这个人!将其排序出来,非常感谢! – Donnacha 2014-09-04 14:35:46