python - flask报错ValueError: invalid key ’nicknickname’
问题描述
提出一个问题,也顺便记录一下~,因为涉及到的文件比较多,所以只贴部分代码:下面是views文件:
#coding=utf-8from flask import render_template, flash, redirect, session, url_for, request, gfrom flask_login import login_user, logout_user, current_user, login_requiredfrom app import app, db, lm, oidfrom .forms import LoginFormfrom .models import User@lm.user_loaderdef load_user(id): return User.query.get(int(id))@app.before_requestdef before_request(): g.user = current_user@app.route(’/’)@app.route(’/index’)@login_requireddef index(): user = {’nickname’: ’anryan’} posts = [{ ’author’: {’nickname’: ’Anryan’}, ’body’: u’这地方不错~’},{ ’author’: {’nickname’: ’syy’}, ’body’: u’晚上能扎营不’}, { ’author’: {’nickname’: u’小麦’}, ’body’: u’空气很清爽哈~’}, { ’author’: {’nickname’: u’老崔’}, ’body’: u’谁说不是,如果Tara能在这儿办场演唱会就好了’},{ ’author’: {’nickname’: u’二又’}, ’body’: u’在这儿打LOL比赛肯定能赢’},{ ’author’: {’nickname’: u’言神’}, ’body’: u’玩王者荣耀也不错。’} ] return render_template(’index.html’, title=’Home’, user=user, posts=posts)@app.route(’/login’, methods=[’GET’, ’POST’])@oid.loginhandlerdef login(): if g.user is not None and g.user.is_authenticated:return redirect(url_for(’index’)) form = LoginForm() if form.validate_on_submit():session[’remember_me’] = form.remember_me.datareturn oid.try_login(form.openid.data, ask_for=[’nicknickname’, ’email’]) return render_template(’login.html’, title=u’点击进入’, form=form, providers=app.config[’OPENID_PROVIDERS’])@oid.after_logindef after_login(resp): if resp.email is None or resp.email == '':flash(u’无效登陆信息哦~请重新输入’)return redirect(url_for(’login’)) user = User.query.filter_by(email=resp.email).first() if user is None:nicknickname = resp.nicknicknameif nicknickname is None or nicknickname == '': nicknickname = resp.email.split(’@’)[0]user = User(nicknickname=nicknickname, email=resp.email)db.session.add(user)db.session.commit() remember_me = False if ’remember_me’ in session:remember_me = session[’remember_me’]session.pop(’remember_me’, None) login_user(user, remember=remember_me) return redirect(request.args.get(’next’) or url_for(’index’))@app.route(’/logout’)def logout(): logout_user() return redirect(url_for(’index’))
显示页面:
页面报错:
File 'C:UsersAsusflaskblogappviews.py', line 64, in loginOpen an interactive python shell in this framereturn oid.try_login(form.openid.data, ask_for=[’nicknickname’, ’email’])File 'C:UsersAsusflasklibsite-packagesflask_openid.py', line 554, in try_loginapprove the trust root).'''if ask_for and __debug__: for key in ask_for:if key not in ALL_KEYS: raise ValueError(’invalid key %r’ % key) if ask_for_optional:for key in ask_for_optional: if key not in ALL_KEYS:raise ValueError(’invalid optional key %r’ % key)try:ValueError: invalid key ’nicknickname’The debugger caught an exception in your WSGI application. You can now look at the traceback which led to the error.To switch between the interactive traceback and the plaintext one, you can click on the 'Traceback' headline. From the text traceback you can also create a paste of it. For code execution mouse-over the frame you want to debug and click on the console icon on the right side.
You can execute arbitrary Python code in the stack frames and there are some extra helpers available for introspection:
问题解答
回答1:这里不应该是nickname吗?
相关文章:
1. android - 安卓activity无法填充屏幕2. 一个走错路的23岁傻小子的提问3. javascript - SuperSlide.js火狐不兼容怎么回事呢4. java - 为什么hibernate查询表集报错?5. android - 离线地图的这种列表该怎么实现?6. python - django 里自定义的 login 方法,如何使用 login_required()7. java - 安卓电视盒子取得了root权限但是不能安装第三方应用,请问该怎么办?8. android spinner改变下拉弹出的位置9. node.js - 函数getByName()中如何使得co执行完后才return10. java - 创建maven项目失败了 求解决方法
