视图函数未返回有效响应[重复]

2024-01-16

我正在尝试严格遵循 Miguel 的出色教程(https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-v-user-logins https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-v-user-logins),复制并粘贴所需的文本以尝试消除错误。我已经到达“在模板中显示登录用户”部分,但是当我尝试运行该应用程序时,它启动正常,但浏览器显示错误,并且 CMD 会话中存在诊断信息(我使用的是 Windows)。这将在下面进一步提供。

我是 Python/Flask 的新手,但我猜测其中一个被调用的例程没有返回值,但是在阅读了 app.py 代码后,我真的找不到我犯了什么错误。如果有人能指出我正确的方向,我很乐意继续该教程。

routes.py 文件包含登录代码:

@app.route('/login', methods=['GET', 'POST'])
def login():
    if current_user.is_authenticated:
        return redirect(url_for('index'))
    form = LoginForm()
    if form.validate_on_submit():
        user = User.query.filter_by(username=form.username.data).first()
        if user is None or not user.check_password(form.password.data):
            flash('Invalid username or password')
            return redirect(url_for('login'))
        login_user(user, remember=form.remember_me.data)
        next_page = request.args.get('next')
        if not next_page or url_parse(next_page).netloc != '':
            next_page = url_for('index')
        return redirect(next_page)

它是..if form.validate_on_submit()..问题发生的地方

我希望在 127.0.0.1:5000 上获得登录屏幕,但浏览器显示:-

内部服务器错误
服务器遇到内部错误,无法完成您的请求。服务器过载或应用程序出现错误。

调用的URL是“http://127.0.0.1:5000/login?next=%2F http://127.0.0.1:5000/login?next=%2F"

CMD 窗口显示以下错误消息:-

[2019-09-07 18:13:47,941] 应用程序中的错误:/登录时出现异常 [GET]
回溯(最近一次调用最后一次):
文件“c:\users\tribl\venv\lib\site-packages\flask\app.py”,第 2446 行,在 wsgi_app 中
响应 = self.full_dispatch_request()
文件“c:\users\tribl\venv\lib\site-packages\flask\app.py”,第 1952 行,在 full_dispatch_request 中
返回 self.finalize_request(rv)
文件“c:\users\tribl\venv\lib\site-packages\flask\app.py”,第 1967 行,在 Finalize_request 中
响应 = self.make_response(rv)
文件“c:\users\tribl\venv\lib\site-packages\flask\app.py”,第 2097 行,在 make_response 中
“视图函数没有返回有效的响应。”
TypeError:视图函数未返回有效响应。该函数要么返回 None,要么在没有 return 语句的情况下结束。
127.0.0.1 - - [2019 年 9 月 7 日 18:13:47] “GET /login?next=%2F HTTP/1.1” 500 -


该错误表明该函数未完成,因为它错过了返回指令。任何视图函数都必须返回一些东西。在您的情况下,您忘记了这一行,它用于指示模板文件在哪里,特别是用于呈现表单。您的代码应如下所示:

@app.route('/login', methods=['GET', 'POST'])
def login():
    if current_user.is_authenticated:
        return redirect(url_for('index'))
    form = LoginForm()
    if form.validate_on_submit():
        user = User.query.filter_by(username=form.username.data).first()
        if user is None or not user.check_password(form.password.data):
            flash('Invalid username or password')
            return redirect(url_for('login'))
        login_user(user, remember=form.remember_me.data)
        next_page = request.args.get('next')
        if not next_page or url_parse(next_page).netloc != '':
            next_page = url_for('index')
        return redirect(next_page)
    return render_template('login.html', form=form)

注释行:return render_template('login.html', form=form)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

视图函数未返回有效响应[重复] 的相关文章

  • 使用 PIP 从 Github 安装 Python 包

    我已经看到文档表明您可以通过以下方式使用 pip 安装托管 Python 包的 Github sudo pip install e git git github com myuser myproject git egg myproject
  • 在Python中读取PDF属性/元数据

    如何使用 Python 读取 PDF 文件中存储的属性 元数据 例如标题 作者 主题和关键字 Try pdfminer https github com euske pdfminer from pdfminer pdfparser impo
  • numba.prange 性能不佳

    我试图整理一个简单的例子来说明使用的好处numba prange对于我自己和一些同事来说 但我无法获得像样的加速 我编写了一个简单的一维扩散求解器 它本质上是在一个长数组上循环 组合元素i 1 i and i 1 并将结果写入element
  • DRF ManyToMany Field 在创建对象时出现错误

    我有一个Rant模型与Category使用链接到它ManyToManyField 我已经序列化了它 但问题是这个错误 categories Expected a list of items but got type str 这些是我的序列化
  • 添加图例到散点图

    这个问题已经被问到了 但我想找到一个更清晰的解决方案 给定 X 是 100x2 数据 标签是标签向量 从 1 到 9 我绘制散点图如下 pl scatter X 0 X 1 c labels pl show 如何仅用一行代码添加图例来解释颜
  • 在 Python 中打开 Alteryx .yxdb 文件?

    有没有办法将 yxdb Alteryx 数据库文件 导入到 Pandas Python 中 而不使用 Alteryx 作为中间人 简短的回答是否定的 目前还不行 更长的答案 yxdb 支持的原始 C 是可以在 github 上找到 http
  • Boost Python:多态容器?

    我有一个方法 或函数 它返回对多态对象列表的引用 class A class B public A std list
  • Pandas 将 NULL 读取为 NaN 浮点数而不是 str [重复]

    这个问题在这里已经有答案了 给定文件 cat test csv a b c NULL d e f g h i j k l m n 其中第三列被视为str 当我对列执行字符串函数时 pandas已阅读NULLstr 作为一个NaN float
  • Python OO程序结构规划

    我是 OOP 的初学者 我想创建一个包含三个类 A B 和 C 的程序 该类的每个实例都由一组特征 Achar1 Achar2 等定义 该程序应该创建uses由 A 元素 B 元素和 C 元素以及开始日期和结束日期组成 A 和 B 都有子类
  • scrapy蜘蛛如何将值返回给另一个蜘蛛

    我正在爬行的网站包含许多玩家 当我点击任何玩家时 我都可以进入他的页面 网站结构是这样的
  • 使用 Click 在 python 中创建命令行应用程序

    我正在使用 Python 创建一个命令行应用程序Click http click pocoo org 接受名称作为输入的库 但如果未输入名称 则返回默认值 这是我到目前为止的代码 hello py import click click ve
  • 如何在Python中将字符串转换为包含一个元素的列表[重复]

    这个问题在这里已经有答案了 我有一个字符串 我想将其转换为其中只有一个元素的列表 a abc print list a output a b c Expected o p abc 正确的做法是什么 只需使用 a abc b a print
  • 使用 pywin32com 进行 opc 的内存泄漏

    我很难弄清楚如何解决内存泄漏问题 我认为这可能是 pywin32 的问题 但我不完全确定 我用于读取 写入单个项目的代码似乎工作得很好 但是当使用组函数时 它会慢慢泄漏内存 我怀疑这是来自必须在 server handles 中传递的基于
  • 树莓派上的 /dev/mem 访问被拒绝

    我正在使用我的 Raspberry Pi 并且正在编写一个 cgi python 脚本 该脚本创建一个网页来控制我的 gpio 输出引脚 当我尝试将 RPi GPIO 作为 GPIO 导入时 我的脚本崩溃了 这是我收到的错误 File co
  • 在此异步设置中,我在哪里捕获 KeyboardInterrupt 异常

    我正在开发一个使用ccxt异步库 它要求通过显式调用该类的资源来释放某个类使用的所有资源 close 协程 我想退出程序ctrl c并等待异常中的关闭协程 然而 它永远不会被等待 该应用程序由模块组成harvesters strategie
  • 在硬件级别模拟按键 - Windows

    我正在寻找一种语言或库 使我能够在最大可能的水平上模拟击键 而无需实际按下按键 我对击键级别的具体衡量标准是 当我的计算机已经运行按键侦听器 例如鼠标键和粘滞键 时 它是否会产生与物理按键相同的输出 我尝试过很多击键模拟的方法 java A
  • 使用 scipy.io 将 python pandas dataframe 转换为 matlab 结构

    我正在尝试使用 scipy io 将 pandas 数据帧保存到 matlab mat 文件 我有以下内容 array1 np array 1 2 3 array2 np array a b c array3 np array 1 01 2
  • 如何使用 google.oauth2 python 库?

    我试图对谷歌机器学习项目的安全预测端点进行简单的休息调用 但它找不到 google oauth2 模块 这是我的代码 import urllib2 from google oauth2 import service account Cons
  • 在python中读取证书(.crt)和密钥(.key)文件

    因此 我使用 JIRA Python 模块连接到我公司的 JIRA 实例 它要求我为此传递证书和密钥 但是 使用 OpenSSL 模块 我无法读取本地证书和密钥来将其传递给请求 阅读代码如下 import OpenSSL crypto c
  • Python FFmpeg查询rtsp太慢

    目前 我正在尝试使用 python 和 FFmpeg 来查询原始格式为 h264 的 rtsp 数据 直播流视频的信息为 fps 29 分辨率 1280 720 我希望我可以以相同的格式 h264 查询数据并将其放入python队列中以便将

随机推荐

  • 在 HTML 中定位图像(使用创建图像的按钮)

    我一直在使用这段代码 div class divClassName div
  • 从终端检测脚本中的键盘输入的最简单方法是什么?

    我有一个简单的 python 脚本 它有一些循环运行的函数 我正在读取传感器读数 while True print Doing a function 如果按下键盘 我想打印 按键已按下 在 Python 中执行此操作的最简单方法是什么 我已
  • jquery ajax 调用可以在本地主机上运行,​​但不能在实时服务器上运行

    我已经研究了这个问题一整天 这似乎是一个有点常见的问题 但我一直无法找到解决方案 我正在使用 jquery 的 ajax 函数进行服务调用以更新数据库中的某些值 它在本地主机上运行良好 但在实际服务器上 我在控制台窗口中收到 500 内部服
  • JQuery 将类添加到克隆元素

    这是我的脚本 addprop click function clone clone insertAfter addprop 我需要向正在创建的新元素添加一个类 是否可以 是的 addprop click function clone clo
  • sql选择多行的最早日期

    我有一个如下所示的数据库 circuit uid customer name location reading date reading time amps volts kw kwh kva pf key cu1 cb1 r1 Custom
  • heroku 还有其他搜索选项吗

    我即将推出一个测试版网站 并且heroku看起来是一个不错的选择 唯一让我失望的是 Websolr 附加组件的唯一搜索选项是 20 美元 月 我确信 Websolr 很棒 但在这个项目的早期阶段 我宁愿不花这笔费用 有没有免费的搜索选项可以
  • 使用 OpenSSL 解密字符串在终端中有效,但在 PHP 脚本中无效

    我正在尝试解密一个文件 我可以使用以下字符串在终端中使用 OpenSSL 对其进行解密 openssl enc d aes 192 ecb in file crypt out file K 0123456789abcdef iv 0 但是
  • 如何将 PHP glob 指向特定目录?

    所以我得到了这段代码来列出目录中的所有 jpg 图像 但它只适用于我的根目录 我不知道如何将它指向我的图像目录 ul li a href gt img src gt a li ul 有人能帮我吗 这应该有效 glob images N T
  • 撰写中两个活动之间的共享元素转换?

    目前是否有任何东西可以允许在 Jetpack Compose 中使用共享元素动画在结果列表和详细信息屏幕之间制作经典过渡动画 就像是 我知道一些实验库允许这样做 但它们都适用于单一活动 我想知道更传统的方法有两个活动 The 官方 Jetp
  • angularJS:页面刷新时更改图像。否则(如果不刷新)想在5秒内自动更改

    这里创建了一个页面形象改变而页面刷新 从这个问题在 angularJS 中刷新页面时更改图像 https stackoverflow com questions 42948044 change image when page refresh
  • 在java中将关联、聚合和组合转换为代码?

    我知道java中关联 聚合和组合的转换有不同的表示方式 但是当我们将它们转换为代码 java类 时 它们都以相同的方式表示 就像老师教的学生一样 关联将用具有班级老师实例变量的学生类来表示 部门有教授 聚合也将用具有班级教授实例变量 数组
  • 如何在 PHP 中解析 JSON 对象?

    我有一个 JSON 对象 正在发送到 PHP 脚本 但在解析 JSON 时遇到问题 这是 POST 请求 http mywebsite com action somefunction 22id 22 1 22Name 22 22Mike 2
  • Firebase如何为树深处的2级随机ID的子级编写安全规则

    我有一个名为 people 的数据库节点 如下所示 people UserID1 which is a random id UserId2 which is a random id name some name id UserId2 ima
  • 指令中0x0表示什么

    什么是0x0在以下指令中注明 lea 0x0 esi eiz 1 esi 整个语句是一个很棒的 noop 它看起来是一个 7 字节的 noop http www technovelty org code arch noop html htt
  • Python:编译成 Unix 命令行应用程序

    我不确定我是否搜索了错误的术语 但我在这个主题上找不到太多内容 我在 osx 上 我想将命令行 python 脚本编译成一个小型命令行应用程序 我可以将其放入 usr local bin 中 这样我就可以从任何地方调用它 有没有一种直接的方
  • Celery 任务中每个查询的 Python cassandra-driver OperationTimeOut

    我对在 celery 任务中异步执行的每个插入查询 小查询 都有问题 在同步模式下 当我插入时 一切都完成得很好 但是当它在 apply async 中执行时 我得到这个 OperationTimedOut errors errors er
  • 使用 Flexbox 实现等高列

    我正在尝试构建一个具有两个独立内容组的布局 一个位于左侧和右侧 目前具有固定宽度 20 80 在每一侧 我都尝试使用 flexbox left panel 来排列内容flex direction column和右侧面板flex direct
  • 从类中调用方法

    我有 2 个表格 Form1 和 Form2 和一个班级 Class1 Form1 包含一个按钮 Button1 Form2 包含一个 RichTextBox textBox1 当我在 Form1 上按 Button1 时 我希望调用方法
  • 从 pandas DataFrame 计算 p 值

    我有一个 DataFrame 统计数据 其中包含 Multiindex 和 8 个样本 此处仅显示两个 每个样本有 8 个基因 In 13 stats Out 13 ARG 16S count mean std min sample gen
  • 视图函数未返回有效响应[重复]

    这个问题在这里已经有答案了 我正在尝试严格遵循 Miguel 的出色教程 https blog miguelgrinberg com post the flask mega tutorial part v user logins https