在Flask中使用会话时出现KeyError

AkIonSight

我一直在尝试制作Flask应用,但是即使我声明了会话变量,在访问该会话变量时python也会引发Keyerror。确切的回溯也在下面给出。如果您需要更多帮助,请在下面评论。我有时也收到一些有关会话溢出的警告

Traceback (most recent call last):
  File "C:\Users\Ratan\AppData\Local\Programs\Python\Python38-32\Lib\site-packages\flask\app.py", line 2464, in __call__
    return self.wsgi_app(environ, start_response)
  File "C:\Users\Ratan\AppData\Local\Programs\Python\Python38-32\Lib\site-packages\flask\app.py", line 2450, in wsgi_app
    response = self.handle_exception(e)
  File "C:\Users\Ratan\AppData\Local\Programs\Python\Python38-32\Lib\site-packages\flask\app.py", line 1867, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "C:\Users\Ratan\AppData\Local\Programs\Python\Python38-32\Lib\site-packages\flask\_compat.py", line 39, in reraise
    raise value
  File "C:\Users\Ratan\AppData\Local\Programs\Python\Python38-32\Lib\site-packages\flask\app.py", line 2447, in wsgi_app
    response = self.full_dispatch_request()
  File "C:\Users\Ratan\AppData\Local\Programs\Python\Python38-32\Lib\site-packages\flask\app.py", line 1952, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "C:\Users\Ratan\AppData\Local\Programs\Python\Python38-32\Lib\site-packages\flask\app.py", line 1821, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "C:\Users\Ratan\AppData\Local\Programs\Python\Python38-32\Lib\site-packages\flask\_compat.py", line 39, in reraise
    raise value
  File "C:\Users\Ratan\AppData\Local\Programs\Python\Python38-32\Lib\site-packages\flask\app.py", line 1950, in full_dispatch_request
    rv = self.dispatch_request()
  File "C:\Users\Ratan\AppData\Local\Programs\Python\Python38-32\Lib\site-packages\flask\app.py", line 1936, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "C:\Users\Ratan\Documents\GitHub\smart-recorder\main.py", line 58, in give_transcript
    transcript = session['text_only_transcript']
  File "C:\Users\Ratan\AppData\Local\Programs\Python\Python38-32\Lib\site-packages\werkzeug\local.py", line 377, in <lambda>
    __getitem__ = lambda x, i: x._get_current_object()[i]
  File "C:\Users\Ratan\AppData\Local\Programs\Python\Python38-32\Lib\site-packages\flask\sessions.py", line 84, in __getitem__
    return super(SecureCookieSession, self).__getitem__(key)
KeyError: 'text_only_transcript'

这是代码

import other_functions
from flask import Flask
from flask import render_template
from flask import request
from flask import redirect
from flask import url_for
from flask import session
## Imports ##

app = Flask(__name__)
app.secret_key = other_functions.get_secret_key()

## app config  ##

# functions


@app.route('/home/')
@app.route('/')
def main_page():
    return render_template('index.html')


@app.route('/from-yt-link', methods=['POST', 'GET'])
def youtube_link_page():
    if request.method == 'GET':
        return render_template('give_link_page.html')
    elif request.method == 'POST':
        video_url = request.form['url-enter']
        video_id = other_functions.get_video_id(video_url)
        session['video_id'] = video_id
        return redirect(url_for('give_transcript'))


@app.route('/upload_page/')
@app.route('/upload/')
def upload():
    return render_template('upload_page.html')

'''
The error originates here in the get_transcript() function
'''
@app.route('/get-transcript/', methods=['POST', 'GET'])
@app.route('/transcript/', methods=['POST', 'GET'])
def give_transcript():
    if request.method == 'GET':
        try:
            transcript = other_functions.return_transcript(session["video_id"])
            session['transcript'] = transcript
            text_only_transcript = ''
            for i in transcript:
                text_only_transcript = text_only_transcript + i['text'] + ' '
            session['text_only_transcript'] = text_only_transcript
            return render_template('transcript.html', transcript=transcript, raw_text=text_only_transcript)
        except KeyError:
            return '<p>No YT Url Provided</p>'
    elif request.method == 'POST':
        search_query = request.form['search-query']
        print(f"we obtained {search_query} form js with ajax")
        transcript = session['text_only_transcript']
        list_of_words = transcript.split(' ')
        where_is_the_word_present = other_functions.a_small_engine_for_finding_words(
            transcript,  search_query)
        print(f'the word is present in places {where_is_the_word_present}')
        if where_is_the_word_present != []:
            for i in where_is_the_word_present:
                list_of_words.insert(i, '<mark>')
                list_of_words.insert(i+2, '</mark>')
            print(list_of_words)
        else:
            print('lol, word not found')
        return '', 204


if __name__ == "__main__":
    app.run(debug=True)

在此先感谢您回答我的问题:)

编辑:解决了它,检查下面接受的答案的评论

纳瓦尼莎·克里希南

您已text_only_transcript使用GET方法添加到会话中。

并且您在POST方法中收到此错误。

这是一些可能的原因。

  1. text_only_transcript密钥未添加到会话中,因为您忘记了通过GET方法调用URL。因此,您必须先使用GET方法调用URL,然后再使用POST方法调用URL。
  2. 会话可能已删除。请验证您的会话是否具有所有密钥。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

flask配置使用问题。访问配置项时出现KeyError

来自分类Dev

在PYTHON 2.7中使用熊猫时出现Keyerror

来自分类Dev

尝试在Python中使用从SQLite生成的字典时出现KeyError

来自分类Dev

在 psycopg2 中使用 Translate() 时出现 KeyError

来自分类Dev

KeyError:在 Python 中使用 JSON 时出现“站点”

来自分类Dev

在python中使用word_tokenize时出现keyError

来自分类Dev

使用Flask会话时出现内部服务器错误

来自分类Dev

使用 QString 时出现 KeyError

来自分类Dev

在 python 中使用 Reddit API 时,如何避免出现偶发的 KeyError: 'data'?

来自分类Dev

使用Python脚本读取Gmsh输出并将其转换为DNS代码会话文件时出现KeyError:0

来自分类Dev

在 php 中使用会话时出错

来自分类Dev

在Flask中使用os.chdir时出现错误“无此文件或目录”

来自分类Dev

在 Python 中使用 Flask 时出现“未知的 MySQL 服务器主机”

来自分类Dev

在Python中的字符串上使用.format时出现KeyError

来自分类Dev

使用brightway运行wurst库时出现keyerror

来自分类Dev

熊猫-合并时出现KeyError

来自分类Dev

安装tensorflow时出现KeyError

来自分类Dev

使用会话时Laravel的点表示法出现问题

来自分类Dev

使用Zend_Auth验证会话时出现问题

来自分类Dev

CodeIgniter:使用多个控制器时出现会话错误

来自分类Dev

使用cv2.imshow()时出现会话管理错误

来自分类Dev

在Android中使用CheckBox时出现NullPointerException

来自分类Dev

Servlet中使用getParameterValues时出现ArrayIndexOutOfBoundsException

来自分类Dev

在CrudRepository中使用连接时出现LazyInitializationException

来自分类Dev

在div中使用img时出现空格

来自分类Dev

在python中使用for循环时出现JSONDecodeError

来自分类Dev

在XHTML中使用IFrame时出现FacesFileNotFoundException

来自分类Dev

在查询中使用CAST()时出现HibQuerySyntaxException

来自分类Dev

在openGL中使用glGenBuffers时出现黑屏

Related 相关文章

  1. 1

    flask配置使用问题。访问配置项时出现KeyError

  2. 2

    在PYTHON 2.7中使用熊猫时出现Keyerror

  3. 3

    尝试在Python中使用从SQLite生成的字典时出现KeyError

  4. 4

    在 psycopg2 中使用 Translate() 时出现 KeyError

  5. 5

    KeyError:在 Python 中使用 JSON 时出现“站点”

  6. 6

    在python中使用word_tokenize时出现keyError

  7. 7

    使用Flask会话时出现内部服务器错误

  8. 8

    使用 QString 时出现 KeyError

  9. 9

    在 python 中使用 Reddit API 时,如何避免出现偶发的 KeyError: 'data'?

  10. 10

    使用Python脚本读取Gmsh输出并将其转换为DNS代码会话文件时出现KeyError:0

  11. 11

    在 php 中使用会话时出错

  12. 12

    在Flask中使用os.chdir时出现错误“无此文件或目录”

  13. 13

    在 Python 中使用 Flask 时出现“未知的 MySQL 服务器主机”

  14. 14

    在Python中的字符串上使用.format时出现KeyError

  15. 15

    使用brightway运行wurst库时出现keyerror

  16. 16

    熊猫-合并时出现KeyError

  17. 17

    安装tensorflow时出现KeyError

  18. 18

    使用会话时Laravel的点表示法出现问题

  19. 19

    使用Zend_Auth验证会话时出现问题

  20. 20

    CodeIgniter:使用多个控制器时出现会话错误

  21. 21

    使用cv2.imshow()时出现会话管理错误

  22. 22

    在Android中使用CheckBox时出现NullPointerException

  23. 23

    Servlet中使用getParameterValues时出现ArrayIndexOutOfBoundsException

  24. 24

    在CrudRepository中使用连接时出现LazyInitializationException

  25. 25

    在div中使用img时出现空格

  26. 26

    在python中使用for循环时出现JSONDecodeError

  27. 27

    在XHTML中使用IFrame时出现FacesFileNotFoundException

  28. 28

    在查询中使用CAST()时出现HibQuerySyntaxException

  29. 29

    在openGL中使用glGenBuffers时出现黑屏

热门标签

归档