python - 为什么我的脚本中不断出现“TypeError:字符串索引必须是整数”?
问题描述
我正在使用 MySQL 构建一个用户烧瓶应用程序,并且在用户登录代码中我收到错误 TypeError: string indices must be integers every time。
@app.route('/signin',methods=['GET','POST'])
def signin():
if request.method == 'POST':
email = request.method['email']
password_entered = request.method['password']
cur = mysql.connection.cursor()
user = cur.execute("SELECT * FROM users WHERE email = %s",(email))
if user > 0:
data = cur.fetchone()
real_password = data['password']
name = data['name']
email = data['email']
if pbkdf2_sha256.verify(password_entered,real_password):
session['logged_in'] = True
session['name'] = name
session['email'] = email
flash('Sign In Successful!',category='info')
return redirect(url_for('index'))
else:
flash('Details Incorrect!Please try again.',category='error')
return render_template('signin.html')
else:
flash('User does not exist!Please Register.',category='error')
return redirect(url_for('signup'))
return render_template('signin.html')
Python 显示错误来自email = request.method['email']
. 请协助。
解决方案
因为request.method
是根据文档和您之前使用的字符串:if request.method == 'POST':
. 因此,用“电子邮件”索引它不是一个明智的要求。password_entered = request.method['password']
之后应该会产生相同的错误。
见:https ://flask.palletsprojects.com/en/1.1.x/api/#flask.Request.method
您可能需要request.form
or values 数据。
请参阅:https ://flask.palletsprojects.com/en/1.1.x/quickstart/#accessing-request-data
推荐阅读
- chef-infra - 在本地机器上使用 Packer 配置 Chef
- python - 使用 pandas 数据框列作为键创建嵌套字典的有效方法
- python - 用于部署持续 Web 抓取的 Flask 应用程序的选项
- javascript - 我可以为 Angular CLI 生成的源创建自定义模板吗
- html - 创建一个在给定时间后出现的滑动 CSS 抽屉
- mysql - 父表 GORM 2.0 中的外键 AUTO INCREMENTS 时无法创建 HAS MANY 关系
- excel - Excel VBA:基于 ActiveCell 地址的动态命名范围
- jquery - ASP.NET Core Razor 页面在 AJAX POST 后更新部分视图嵌套 HTML 表
- python - 在 Python 中实现双向关联关系
- python-3.x - 无法在 BeagleBoneBlack (revC) 上安装 python3