python - flask報(bào)錯(cuò)ValueError: invalid key ’nicknickname’
問(wèn)題描述
提出一個(gè)問(wèn)題,也順便記錄一下~,因?yàn)樯婕暗降奈募容^多,所以只貼部分代碼:下面是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’這地方不錯(cuò)~’},{ ’author’: {’nickname’: ’syy’}, ’body’: u’晚上能扎營(yíng)不’}, { ’author’: {’nickname’: u’小麥’}, ’body’: u’空氣很清爽哈~’}, { ’author’: {’nickname’: u’老崔’}, ’body’: u’誰(shuí)說(shuō)不是,如果Tara能在這兒辦場(chǎng)演唱會(huì)就好了’},{ ’author’: {’nickname’: u’二又’}, ’body’: u’在這兒打LOL比賽肯定能贏’},{ ’author’: {’nickname’: u’言神’}, ’body’: u’玩王者榮耀也不錯(cuò)。’} ] 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’點(diǎn)擊進(jìn)入’, form=form, providers=app.config[’OPENID_PROVIDERS’])@oid.after_logindef after_login(resp): if resp.email is None or resp.email == '':flash(u’無(wú)效登陸信息哦~請(qǐng)重新輸入’)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’))
顯示頁(yè)面:
頁(yè)面報(bào)錯(cuò):
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:
問(wèn)題解答
回答1:這里不應(yīng)該是nickname嗎?
相關(guān)文章:
1. MySQL的聯(lián)合查詢[union]有什么實(shí)際的用處2. PHP訂單派單系統(tǒng)3. 怎么能做出標(biāo)簽切換頁(yè)的效果,(文字內(nèi)容隨動(dòng))4. mysql - sql 左連接結(jié)果union右連接結(jié)果,導(dǎo)致重復(fù)性計(jì)算怎么解決?5. 網(wǎng)頁(yè)爬蟲 - python 爬取網(wǎng)站 并解析非json內(nèi)容6. mysql 遠(yuǎn)程連接出錯(cuò)10060,我已經(jīng)設(shè)置了任意主機(jī)了。。。7. php多任務(wù)倒計(jì)時(shí)求助8. 數(shù)組排序,并把排序后的值存入到新數(shù)組中9. 默認(rèn)輸出類型為json,如何輸出html10. mysql時(shí)間格式問(wèn)題
