【问题标题】:Bottle: Global Variable 'request' is not defined瓶子:未定义全局变量“请求”
【发布时间】:2014-10-28 14:25:10
【问题描述】:

我正在使用 python 创建一个基于 Web 的应用程序,用户在其中输入搜索查询并返回数据。我用瓶子为此提供了网络框架。然后使用 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'    

使用瓶子并对其进行测试时,它运行良好,但是当我尝试将其部署到 OpenShift 时,出现名称错误,“未定义全局变量‘请求’”,在测试时它与之前的瓶子完美配合部署到 openshift,有人知道为什么会这样吗?

【问题讨论】:

  • 它在您的日志文件中显示什么?
  • NameError: 未定义全局名称'request'。
  • 猜测是来自 'search = request.forms.get(search)' 行吗?
  • 你导入request了吗?

标签: python python-2.7 openshift bottle


【解决方案1】:

您似乎还没有将请求或路由导入命名空间:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-08
    • 2018-09-17
    • 1970-01-01
    • 1970-01-01
    • 2019-10-01
    • 2014-02-02
    • 2016-05-13
    相关资源
    最近更新 更多