如何在Flask中并行返回jsonify对象和呈现模板

如何在Flask中并行返回jsonify对象和呈现模板,flask,jwt,Flask,Jwt,我想使用以下登录功能。JWT令牌保存在cookies中后,我想重定向到用户主页 @app.route("/login", methods=['GET','POST']) def login(): signInform = LoginForm() examForm = PersonExamForm() online_users = mongo.db.users.find({"online": True}) try: render_template('

我想使用以下登录功能。JWT令牌保存在cookies中后,我想重定向到用户主页

@app.route("/login", methods=['GET','POST'])
def login():
    signInform = LoginForm()
    examForm = PersonExamForm()
    online_users = mongo.db.users.find({"online": True})
    try:
        render_template('login.html', title = 'Login', form =signInform) db_cm.find_one({'username':signInform.username.data}) 
        if auth != None:
            print(signInform.password.data == auth['password'])
            if signInform.password.data == auth['password']:       
               access_token = create_access_token(identity=auth['username'], expires_delta=datetime.timedelta(minutes=1), user_claims=None, headers=None)
               refresh_token =create_refresh_token(identity=auth['username'], expires_delta=datetime.timedelta(minutes=1), user_claims=None, headers=None)
            # Set the JWT cookies in the response                
               resp = jsonify({'login': True})
               set_access_cookies(resp, access_token)
               set_refresh_cookies(resp, refresh_token)               
               return resp,200, render_template('home.html', posts = sample_posts, online_users=online_users)              
它不工作,我收到一条错误消息:


ValueError:没有足够的值来解包(预期值为2,实际值为1)
127.0.0.1---[28/Nov/2019 13:37:48]“发布/登录HTTP/1.1”500-
回溯(最近一次呼叫最后一次):
文件“C:\Users\.virtualenvs\Test_Projects-7jm6kxsT\lib\site packages\flask\app.py”,第2463行,在调用中__
返回self.wsgi_应用程序(环境,启动响应)
wsgi_应用程序中的文件“C:\Users\.virtualenvs\Test_Projects-7jm6kxsT\lib\site packages\flask\app.py”,第2449行
response=self.handle\u异常(e)
文件“C:\Users\.virtualenvs\Test_Projects-7jm6kxsT\lib\site packages\flask\app.py”,第1866行,在handle_exception中
重放(exc_类型、exc_值、tb)
文件“C:\Users\.virtualenvs\Test_Projects-7jm6kxsT\lib\site packages\flask\\u compat.py”,第39行,在reraise中
增值
wsgi_应用程序中的文件“C:\Users\.virtualenvs\Test_Projects-7jm6kxsT\lib\site packages\flask\app.py”,第2446行
response=self.full\u dispatch\u request()
文件“C:\Users\.virtualenvs\Test\u Projects-7jm6kxsT\lib\site packages\flask\app.py”,第1952行,完整发送请求
返回自我确认请求(rv)
文件“C:\Users\.virtualenvs\Test_Projects-7jm6kxsT\lib\site packages\flask\app.py”,第1967行,在finalize_请求中
反应=自我反应(rv)
文件“C:\Users\.virtualenvs\Test_Projects-7jm6kxsT\lib\site packages\flask\app.py”,第2142行,在make_响应中
rv.集管.延伸(集管)
文件“C:\Users\.virtualenvs\Test_Projects-7jm6kxsT\lib\site packages\werkzeug\datastructures.py”,第1091行,扩展
对于键,iterable中的值:

ValueError:没有足够的值来解包(预期值为2,实际值为1) 127.0.0.1---[28/Nov/2019 13:37:48]“获取/登录?\uuuuuu调试器\uuuuuuuuuu=yes&cmd=resource&f=style.css HTTP/1.1”200- 127.0.0.1---[28/Nov/2019 13:37:48]“获取/登录?\uuuuuu调试器\uuuuuuuuuu=yes&cmd=resource&f=jquery.js HTTP/1.1”200- 127.0.0.1---[28/Nov/2019 13:37:48]“获取/登录?\uuuuuu调试器\uuuuuuuuuu=yes&cmd=resource&f=debugger.js HTTP/1.1”200- 127.0.0.1---[28/Nov/2019 13:37:48]“获取/登录?\uuuuuu调试器\uuuuuuuuuu=yes&cmd=resource&f=console.png HTTP/1.1”200- 127.0.0.1---[28/Nov/2019 13:37:48]“获取/登录?\uuuuuu调试器\uuuuuuuuuu=yes&cmd=resource&f=ubuntu.ttf HTTP/1.1”200- 127.0.0.1---[2019年11月28日13:37:49]“获取/登录?\uuuuuu调试器\uuuuuuuuuu=yes&cmd=resource&f=console.png HTTP/1.1”200-
我怎样才能解决这个问题


您可能正在寻找类似的内容:

resp = make_response(render_template(*args))
set_access_cookies(resp, access_token)
set_refresh_cookies(resp, refresh_token)               
return resp, 200       

您可能正在寻找类似的内容:

resp = make_response(render_template(*args))
set_access_cookies(resp, access_token)
set_refresh_cookies(resp, refresh_token)               
return resp, 200       

为什么不起作用?。你能更具体一点吗?ValueError:没有足够的值来解包(预期为2,得到1)我有这个错误msgWhat行给出错误?请发布堆栈跟踪中涉及的所有书面方法的完整堆栈跟踪和方法签名,以便我们可以更好地帮助您。您有什么想法可以帮助我吗?为什么不起作用?。你能更具体一点吗?ValueError:没有足够的值来解包(预期为2,得到1)我有这个错误msgWhat行给出错误?请发布堆栈跟踪中涉及的所有书面方法的完整堆栈跟踪和方法签名,以便我们能更好地帮助您。您有什么想法可以帮助我吗?如果我想在呈现模板后重新更正URL,怎么做?
@app.route('/logout')def logout():signinfo=LoginForm()resp=jsonify({'logout':True})resp=make_response(render_template('login.html',title='login',form=signInform))unset_jwt_cookies(resp)#redirect(url_for('login'))return resp,200
如果我想在呈现模板之后重新更正url,怎么做?
@app.route('/logout')def logout():signInform=LoginForm()resp=jsonify({'logout':True})resp=make_response(呈现模板('login.html',title='login',form=signinfo))unset_jwt_cookies(resp)#重定向(url_for('login'))返回resp,200