Python ID为的Flask用户页
我想要一个用户页(/users/)。 当您打开just/users/时,您应该会看到自己的用户配置文件(如果您已登录,则为:Error) 当您使用get命令时,如/users/?uid=2999,它应该使用uid=2999读取用户的用户信息。 get有效,如果您已登录,您将看到自己的个人资料也有效。 但如果您未登录,则会出现以下错误:Python ID为的Flask用户页,python,flask,Python,Flask,我想要一个用户页(/users/)。 当您打开just/users/时,您应该会看到自己的用户配置文件(如果您已登录,则为:Error) 当您使用get命令时,如/users/?uid=2999,它应该使用uid=2999读取用户的用户信息。 get有效,如果您已登录,您将看到自己的个人资料也有效。 但如果您未登录,则会出现以下错误: Bad Request The browser (or proxy) sent a request that this server could not und
Bad Request
The browser (or proxy) sent a request that this server could not understand.
这就是代码片段:
@app.route('/users/')
def users():
if 'logged_in' in session:
ret = 0
user = session['uid']
c, conn = dbconnect.conn()
data = c.execute("SELECT * FROM users WHERE uid = (%s)", (user))
if int(data) == 0:
flash("Error! Please send a report at martin@tekkkz.com!")
else:
data = c.fetchone()
ret = 1
c.close()
conn.close()
gc.collect()
if ret:
return render_template("users.html", nav=2, user=data)
elif request.args['uid']:
ret = 0
user = request.args['uid']
c, conn = dbconnect.conn()
data = c.execute("SELECT * FROM users WHERE uid = (%s)", (user))
if int(data) == 0:
flash("Invalid User-ID. This user doesn't exist!")
else:
data = c.fetchone()
ret = 1
c.close()
conn.close()
gc.collect()
if ret:
return render_template("users.html", nav=2, user=data)
else:
flash("You need to be logged in to see your own profile!")
return redirect(url_for('login'))
为什么会出现错误请求?当您未登录且“uid”不在查询字符串中时,问题是这一行
elif request.args['uid']:
Flask在args中找不到密钥时会引发HTTP错误
相反,你应该这样做
elif 'uid' in request.args:
问题在于使用URL访问变量。 当Flask在URL中找不到
键时,它会引发keyrerror
应使用以下语法访问变量
any_var = request.args.get('key', '')
其中,'key'
是通过URL传递的变量名,'
是默认值