flask重定向没有改变html,带有ajax响应的Flask没有重定向

在使用Flask进行前后端交互时,遇到POST请求登录验证时TypeError:'NoneType' object is not subscriptable的问题,文章详细探讨了原因并提供了修复方法,涉及数据库查询和JSON数据处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当我从flask view函数将URL发送回javascript文件时,不会发生重定向,而是返回一个Type error: 'NoneType' object is not subscriptable。在

我的视图功能:@app.route('/login', methods=['POST','GET'])

def login():

if request.method == "POST":

print('check')

values = request.json

print(values)

result = db.session.query(Emp_Details).filter_by(ID=values['ID']).first()

print(result.Password)

if result.Password == values['Password'] and result.Department == 'HR':

print(jsonify(url=url_for('hr_department')))

return jsonify(url=url_for('hr_department'))

elif result.Password == values['Password'] and result.Department == 'DEVELOPMENT':

return url_for('devs')

else:

abort(401)

else:

return render_template("login.html")

我的Ajax请求:

^{pr2}$

控制台中的日志:check

{'Password': 'leechan2', 'ID': '10090'}

leechan2

127.0.0.1 - - [26/Dec/2016 23:34:37] "POST /login HTTP/1.1" 200 -

check

None

127.0.0.1 - - [26/Dec/2016 23:34:37] "POST /login HTTP/1.1" 500 -

Traceback (most recent call last):

File "/usr/local/lib/python3.5/dist-packages/flask/app.py", line 2000, in __call__

return self.wsgi_app(environ, start_response)

File "/usr/local/lib/python3.5/dist-packages/flask/app.py", line 1991, in wsgi_app

response = self.make_response(self.handle_exception(e))

File "/usr/local/lib/python3.5/dist-packages/flask/app.py", line 1567, in handle_exception

reraise(exc_type, exc_value, tb)

File "/usr/local/lib/python3.5/dist-packages/flask/_compat.py", line 33, in reraise

raise value

File "/usr/local/lib/python3.5/dist-packages/flask/app.py", line 1988, in wsgi_app

response = self.full_dispatch_request()

File "/usr/local/lib/python3.5/dist-packages/flask/app.py", line 1641, in full_dispatch_request

rv = self.handle_user_exception(e)

File "/usr/local/lib/python3.5/dist-packages/flask/app.py", line 1544, in handle_user_exception

reraise(exc_type, exc_value, tb)

File "/usr/local/lib/python3.5/dist-packages/flask/_compat.py", line 33, in reraise

raise value

File "/usr/local/lib/python3.5/dist-packages/flask/app.py", line 1639, in full_dispatch_request

rv = self.dispatch_request()

File "/usr/local/lib/python3.5/dist-packages/flask/app.py", line 1625, in dispatch_request

return self.view_functions[rule.endpoint](**req.view_args)

File "/home/gautham/Intern-flask/Intern/App.py", line 24, in login

result = db.session.query(Emp_Details).filter_by(ID=values['ID']).first()

TypeError: 'NoneType' object is not subscriptable

127.0.0.1 - - [26/Dec/2016 23:34:37] "GET /login?__debugger__=yes&cmd=resource&f=style.css HTTP/1.1" 200 -

127.0.0.1 - - [26/Dec/2016 23:34:37] "GET /login?__debugger__=yes&cmd=resource&f=debugger.js HTTP/1.1" 200 -

127.0.0.1 - - [26/Dec/2016 23:34:37] "GET /login?__debugger__=yes&cmd=resource&f=jquery.js HTTP/1.1" 200 -

127.0.0.1 - - [26/Dec/2016 23:34:37] "GET /login?__debugger__=yes&cmd=resource&f=console.png HTTP/1.1" 200 -

127.0.0.1 - - [26/Dec/2016 23:34:37] "GET /login?__debugger__=yes&cmd=resource&f=console.png HTTP/1.1" 200 -

127.0.0.1 - - [26/Dec/2016 23:34:37] "GET /login?__debugger__=yes&cmd=resource&f=style.css HTTP/1.1" 200 -

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值