当前位置: 首页 > 面试题库 >

检查flask中的request.method时出错

谷梁建中
2023-03-14
问题内容

我目前正在学习Flask。

$.ajax()使用jQuery 发送数据后,type='post'当我检查时,服务器端会给出错误消息request.method。也会发生同样的情况type='get'

错误

builtins.ValueError
ValueError: View function did not return a response

Traceback (most recent call last)
  File "C:\Python33\lib\site-packages\flask\app.py", line 1836, in __call__
    return self.wsgi_app(environ, start_response)
  File "C:\Python33\lib\site-packages\flask\app.py", line 1820, in wsgi_app
    response = self.make_response(self.handle_exception(e))
  File "C:\Python33\lib\site-packages\flask\app.py", line 1403, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "C:\Python33\lib\site-packages\flask\_compat.py", line 33, in reraise 
    raise value 
  File "C:\Python33\lib\site-packages\flask\app.py", line 1817, in wsgi_app
    response = self.full_dispatch_request()
  File "C:\Python33\lib\site-packages\flask\app.py", line 1478, in full_dispatch_request
    response = self.make_response(rv)
  File "C:\Python33\lib\site-packages\flask\app.py", line 1566, in make_response
    raise ValueError('View function did not return a response')
ValueError: View function did not return a response

python代码

if request.method=='psot': #**Error occur when i check**
    req = request.get_json()
    ck=query_db("select * from users where username=?",[req['u']])
    if ck:
        if check_password_hash(ck[0]['password'],req['p']):
            session['username']=req['u']
            return jsonify({'result':'1234'})
        else:
            return jsonify({'result':'noo'})
    else:
            return jsonify({'result':'noo'})

jQuery

$.ajax({
    type:'post',
    contentType: 'application/json',
    url:"/login",
    data:JSON.stringify({'u':luser.val(),'p':lpass.val()}),
    dataType:'json',
    success:function(data)
    {
        if(data.result=='1234')
        {
            window.location.href='/profile';
        }
        else
        {
            $('#log3s').html('username or password not correct').css('color','red');
            return false;
        }
    }
});

问题答案:

你需要确保使用正确的方法注册了查看路线:

@app.route('/login', methods=['GET', 'POST'])

同时允许GET和POST请求,或使用:

@app.route('/login', methods=['POST'])

只 允许POST这条路线。

要测试请求方法,请使用大写文本进行测试:

if request.method == 'POST':

但请确保你始终返回响应。如果request.method是不等于'POST'你还需要返回一个有效的响应。



 类似资料:
  • 在执行某个操作之前,我正在检查 null,但我遇到了一些问题。以下是代码: 我在点 c.size() != null 处得到一个“运算符 != 未定义参数类型int,null”。我知道 size 方法的返回类型是整数,这就是我收到此错误的原因吗?希望有人能提供建议。谢谢。

  • 问题内容: 我创建的模板文件包含以下内容: 然后Jinja2回应说: 我对Jinja2和Flask完全陌生 问题答案: 你正在寻找mapping测试: Jinja 是不是Python的,因此你不必访问所有内建(与不存在,例如,除非你将它们添加到背景下,在瓶,你这样做与装饰)。 你实际上根本不需要。默认情况下,所有内容都会输出(除非你位于父模板的子模板中,在这种情况下,你可以做一些有趣的事情,例如N

  • 我得到这个错误: InvalidRequest:服务器错误:code=2200[无效查询]消息="Java源代码编译失败: 第1行:运算符!=对于参数类型long, null 第1行:运算符!=对于参数类型long, null未定义" 而在手册中,这些比较似乎是可以的(例如这里)。我使用的是Cassandra 4.0.3(通过docker图像)。

  • 问题内容: 我有一个使用Flask-SQLAlchemy连接到MySQL数据库的Flask应用程序。 我希望能够检查表中是否存在行。我将如何修改查询以检查行是否存在: 我找到了一个使用SQLAlchemy的问题的解决方案,但似乎不适合Flask-SQLAlchemy的工作方式: 问题答案: 由于你只想查看用户是否存在,因此你不想查询整个对象。只需查询id,如果标量返回不为None,它就存在。 你显

  • 问题内容: 我正在使用pythons子进程模块中的subprocess.check_output执行ping命令。这是我的做法: 它引发一个CalledProcessError并说输出是该函数的参数之一。谁能帮助我如何阅读该输出。我想将输出读取为字符串并进行解析。举例来说,如果ping返回 100%丢包 我需要捕捉一下。如果还有其他更好的方法,请提出建议。谢谢。 问题答案: 在参数列表中,每个条目

  • 有以下三个表格: 用户id 名字 姓氏 等等 邮政id post_id user_id 关系表示用户正在跟踪帖子。 列出职位的最简单方法是: 但是,当列出帖子时,我也想询问当前用户(比如user_id=5)是否在关注每一篇帖子。 所以对于每个帖子,我都会有,,...,。 我可以用简单的SQL做到这一点,但是这能用雄辩的方式做到吗?