2014-09-03 149 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