无法获取POST参数

2024-04-27

我正在使用 WebApp2 作为框架在 Python 中开发一个 Web 应用程序。 我无法获取通过填写表单提交的http POST请求参数。

这是我创建的表单的 HTML 代码

<html>
<head>
<title>Normal Login Page </title>
</head>
<body>
<form method="post" action="/loginN/" enctype="text/plain" >
eMail: <input type="text" name="eMail"><br/>
password: <input type="text" name="pwd"><br/>
<input type="submit">
</form>
</body>

这是按下提交按钮后 POST 请求的结果

POST /loginN/ HTTP/1.1
Accept: 
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: it-IT,it;q=0.8,en-US;q=0.6,en;q=0.4
Cache-Control: max-age=0
Content-Length: 33
Content-Type: text/plain
Content_Length: 33
Content_Type: text/plain
Cookie: 
session=############
Host: ###########
Origin: ###########
Referer: ############
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36
X-Appengine-City: #######
X-Appengine-Citylatlong: ########
X-Appengine-Country: ##
X-Appengine-Region: ##
X-Cloud-Trace-Context: ##

[email protected] /cdn-cgi/l/email-protection
pwd=mypwd

这是 POST 请求处理程序的代码

class loginN(BaseHandler):
    def post(self):
        w = self.response.write
        self.response.headers['Content-Type'] = 'text/html'
        logging.info(self.request)
        logging.info(self.request.POST.get('eMail'))
        logging.info(self.request.POST.get('pwd'))
        email = self.request.POST.get('eMail')
        pwd = self.request.POST.get('pwd')
        w('<html>')
        w('<head>')
        w('<title>Data Page </title>')
        w('</head>')
        w('<p>Welcome! Your mail is: %s</p>' % email)
        w('<p>Your pwd is: %s</p>' % pwd)
        w('</body>')  

BaseHandler 是 webapp2.RequestHandler 的扩展,用于处理会话(我也尝试使用 webapp2.RequestHandler 并且得到了相同的结果)。

我每次得到的两个参数都是 None 。

关于如何解决问题有什么建议吗?我也尝试了 self.request.get,而不是 self.request.POST.get,但它也不起作用(我也没有得到 None )


尝试删除enctype="text/plain"表单中的属性,然后使用self.request.POST.get('eMail') and self.request.POST.get('pwd').

编辑:删除的原因enctype="text/plain"有效是因为你希望 enctype 是"text/html"(这是默认设置)以便 webapp2 将表单读取为 html 表单。当它刚刚设置为"text/plain",表单的输出仅作为文本包含在请求正文中,这就是您打印请求时看到的内容。如果你使用"text/plain",然后您可以使用以下命令以字符串形式访问表单的输出:

form_string = str(self.request.body)

然后您可以解析该字符串以获取键值对。不过,正如您所知,将 enctype 设置为 html 以获得标准 http 表单功能会更容易。

我具体找不到enctype文档中的信息,但如果您对请求对象有其他疑问,我建议阅读Webob 文档 http://docs.webob.org/en/stable/api/request.html#对于请求对象。 Webapp2 使用 Webob 请求,因此可以通过文档来了解您的请求对象。

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

无法获取POST参数 的相关文章

  • html 表单发布到 Flex 应用程序

    我有一个基本完成的 Flex 应用程序 它使用 Zend AMF 来连接 提供数据 我的应用程序确实有一个登录屏幕 看起来工作正常 现在我想在我的网站上添加另一个登录表单 允 许用户输入用户名 密码 提交表单时应将数据传递给 Flex 应用
  • 计时器显示负的已用时间

    我正在使用一个非常简单的代码来计算每个循环的时间for陈述 它看起来像这样 import time for item in list of files Start timing this loop start time clock Do a
  • 使用 Tkinter 进行多线程 Python

    我用这些函数在画布上画小圆圈 这是绘制圆圈的函数 class Fourmis def init self can posx posy name radius self can can self largeur can int self ca
  • 使用 EntityFramework 使用空参数值调用存储过程

    我在 sqlserver 2008 上有一个存储过程 其中一个参数接受空值 我不知道如何使用参数上的空值来调用该 SP 为了获得更多上下文 我正在使用 EntityFramework 6xx 在下一个示例中 参数 status Compat
  • 解析器生成

    我正在做一个项目软件抄袭检测 我打算用C语言来做这件事 因为我应该创建一个令牌生成器和一个解析器 但我不知道从哪里开始 任何人都可以帮助我解决这个问题 我创建了一个令牌数据库 并将令牌与我的程序分开 接下来我想做的就是比较两个程序以查明它是
  • 如何在Redis中从hmset()切换到hset()?

    我收到弃用警告 即 Redis hmset 已弃用 请改用 Redis hset 但是 hset 采用第三个参数 我不知道是什么name应该是 info users 10 timestamp datetime utcnow strftime
  • 使用 string.whitespace 删除 Python 中的空格

    Python 的 string whitespace 很棒 gt gt gt string whitespace t n x0b x0c r 如何在不手动输入 t n 等正则表达式的情况下将其与字符串一起使用 例如 它应该能够转动 请不要伤
  • 从 python 的单词列表中查找最长的常见单词序列

    我搜索了很多解决方案 确实发现了类似的问题 这个答案 https stackoverflow com questions 21930757 longest repeated substring返回可能不属于输入列表中所有字符串的最长字符序列
  • 为线条指定颜色

    我试图在 matplotlib 中绘制可变数量的行 其中 X Y 数据和颜色存储在 numpy 数组中 如下所示 有没有办法将颜色数组传递到绘图函数中 这样我就不必采取额外的步骤来单独为每条线分配颜色 我是否应该将 RGB 颜色数组转换为另
  • UTF-8 在 Python 日志记录中,如何?

    我正在尝试使用 Python 的日志记录包将 UTF 8 编码的字符串记录到文件中 作为一个玩具示例 import logging def logging test handler logging FileHandler home ted
  • Google App Engine 开发服务器中的 PyCrypto“ImportError:无法导入名称 blockalgo”

    我有一个使用 PyCrypto 使用 AES 加密字符串的函数 当我在单元测试中调用该函数时 一切正常 在生产环境中 它也运行得很好 但是 在GAE开发服务器上调用该函数时 会抛出错误 ImportError 无法导入名称blockalgo
  • 默认可变参数的惯用方式

    在 python 中 如果直接将可变类型设置为默认参数 则会出现众所周知的边缘情况 def foo x return x y foo y append 1 print foo 通常的解决方法是将参数默认为None然后将其放入体内 然而 有
  • 无法运行bjam编译boost python教程

    我正在尝试跟随本教程 http www boost org doc libs 1 55 0 libs python doc tutorial doc html python hello html关于为 Windows 的 python 包装
  • 将 numpy 记录数组转换为字典列表的有效方法

    如何转换下面的 numpy 记录数组 recs Bill 31 260 0 Fred 15 145 0 r rec fromrecords recs names name age weight formats S30 i2 f4 到字典列表
  • 在 Mac OS x 10.7.5 中运行 Scrapy 所需的文件,使用 Python 2.7.3 IEPD_free(32 位)

    我是第一次测试 scrapy 使用命令安装后 sudo easy install U scrapy 一切似乎都运行正常 但是 当我运行时 scrapy startproject tutorial 我得到以下信息 luismacbookpro
  • 有没有办法只从 python 列表中输出数字?

    简单的问题 list 1 asdada 1 123131 131 blaa adaraerada 0 000001 34 12451235265 stackoverflow is awesome 我想创建一个list 2这样它只包含数字 l
  • 多行 x 刻度标签

    我正在尝试制作类似于此 Excel 示例的图 我想知道 x 刻度标签上是否有第二层 例如 5 年统计摘要 我知道我可以使用制作多行刻度标签 n但我希望能够独立地转换这两个级别 这很接近 fig plt figure figsize 8 4
  • 在Python中:检查文件修改时间是否早于特定日期时间

    我用 C 编写了以下代码来检查文件是否已过期 DateTime lastTimeModified file getLastTimeModified if lastTimeModified HasValue File does not exi
  • 仅在满足条件时添加到字典

    我在用urllib urlencode构建 Web POST 参数 但是有一些值我只想在除None为他们而存在 apple green orange orange params urllib urlencode apple apple or
  • Pandas:根据是否为 ​​NaN 来移动列

    我有一个像这样的数据框 phone number 1 clean phone number 2 clean phone number 3 clean NaN NaN 8546987 8316589 8751369 NaN 4569874 N

随机推荐

  • PyGtk3如何更改应用程序主题?

    我尝试使用 Gtk rc parse path to Hooli gtk 3 gtk css 代码进行 rc parse 方法 但它不起作用 这个问题很简单 但解决问题并不容易 我如何更改我的 gtk 应用程序主题 或者我如何在我的 gtk
  • 在 Mac Sierra 上,如何授予 ssh 会话对显示器的访问权限?

    这是后续的使用 Jenkins 运行 ios sim https stackoverflow com questions 13518532 running ios sim with jenkins 当 Jenkins 从机通过 ssh 运行
  • MongoDB C# 驱动程序:使用 linq 在列表中使用或包含在列表中进行不区分大小写的比较

    我正在使用 MongoDB C 驱动程序 我想对集合执行 linq where 子句 将属性的小写版本与内存中列表的小写版本进行比较 像这样 items items Where i gt listToCheck Contains i Pro
  • mod_fcgid + PHP + apache 锁定

    我正在运行一个相当典型的 LAMP 堆栈 其中 PHP 通过 mod fcgid 运行 考虑到服务器收到的流量 我认为服务器处于 高负载 状态 存在一个间歇性问题 当访问依赖 PHP 的站点时 Apache 报告所有连接都处于 正在发送内容
  • Boost.MPL 和类型列表生成

    背景 这是用于游戏引擎中的内存管理器 我有一个freelist已实现 并且希望有一个编译时列表 如果有 例如 MPL 或 Fusion 向量 这freelist对应于分配大小 当分配 释放大小小于常量的对象时 它们将转到相应的freelis
  • 设置快捷方式以替换 VIM 中轻松选择的字符串

    我有很多 php html 文件 其中包含许多应该使用 gettext 国际化的字符串 因此 我必须遍历每个文件 找到 消息 字符串并将每个字符串替换为 I use vim and would like to setup a shortcu
  • 单击 libGDX 中的 Actor

    我的游戏中有一个覆盖层 其中包含屏幕图像和屏幕 上 的一组按钮 截屏 My Screen有一个Stage The Stage有一组Group对象 我将其视为图层 第一组具有背景 中间的组具有游戏元素 最前面的组具有屏幕覆盖 覆盖层由一个Im
  • 如何找出 Kubernetes 中可用的端口?

    我想在 kubernetes 集群中的不同端口上运行多个服务 并且想知道如何检查哪些端口可用并且不会与我的服务产生任何冲突 我还想知道每个端口上的服务名称 以便我可以更好地理解我的配置 有类似的问题涉及验证哪个NodePorts已经在使用中
  • Rails 4 中的“find_all_by_id”相当于什么

    我有一个 id 数组 我想使用活动记录查询从数据库中查找它们各自的记录 例如 ids 2 3 1 现在 对于我来说 要查找 id 是数组中的其中之一的特定模型的所有记录 在较低版本的 Rails 中 我想我可以执行以下操作 Model fi
  • 使用滚动视图通过 Swift 放大图像

    我正在从 Apple 的 Swift 应用程序开发 中学习 Swift 我遇到了约束问题 特别是在第 593 页的 I Spy 实验室 它基本上希望您创建一个滚动视图 其中包含图像视图 并使其可以放大图像并滚动它 例如当您打开照片时 在 照
  • 通过调用 shell 脚本设置 ant 属性?

    有没有办法通过捕获 shellscript 的输出来设置 ant 属性 或另一个蚂蚁任务 像这样的事情
  • 宏扩展忽略了 MSVC 中的一些标记

    我在 msvc 编译器中遇到宏扩展问题 我希望将以下代码扩展为F x 它在 gcc 和 clang 上执行 但 msvc 将其扩展为F忽略x令牌 这里发生了什么 define S s s define F define M S S F x
  • 如何在文本文件中找到最长的 N 行并将其打印到标准输出?

    第一行包含数字 N 的值 后跟多行 我可以按照n 2算法的顺序解决它 有人可以建议一个更好的吗 您可以使用最小堆并在 O n log N 中完成 heap new Min Heap N foreach line in text if len
  • 如何将字节数组转换为任何类型

    好的 我看到有人问如何将字节数组转换为int string Stream等等 答案各不相同 我个人还没有找到任何令人满意的答案 这里有一些我们想要将字节数组转换成的类型 UnityEngine Font可以吸收ttf data UnityE
  • Google Inceptionism:按类别获取图像

    在著名的 Google Inceptionism 文章中 http googleresearch blogspot jp 2015 06 inceptionism going deeper into neural html http goo
  • 将另一个类添加到 div

    我有一个函数可以检查表单提交的年龄 然后根据年龄在 div 中返回新内容 现在我只是使用 getElementById 来替换 HTML 内容 但我认为如果我也可以向 div 添加一个类 那对我来说会更好 例如我有 if under cer
  • SceneKit 绘制曲线

    我想用 SceneKit 画一条贝塞尔曲线 并认为这可行 func drawCurvedLine let scene SCNScene let scnView self view as SCNView scnView scene scene
  • 共享对象发送方法

    在 FMS 中 我想使用共享对象在聊天应用程序中发送消息 因为它是实时的 我的问题是 如何使用共享对象在实时聊天应用程序中向用户来回发送消息 这需要服务器端脚本 客户端还是两者都需要 您只需要在服务器端编写一些特定功能的代码 例如安全功能
  • 如何声明返回函数指针的函数指针

    如何声明一个函数指针 该指针指向具有相同参数的函数 并返回一个指向具有相同参数的函数的指针 i e funcPtr指着func1 int a int b and func1返回指向另一个函数的指针func2 int a int b func
  • 无法获取POST参数

    我正在使用 WebApp2 作为框架在 Python 中开发一个 Web 应用程序 我无法获取通过填写表单提交的http POST请求参数 这是我创建的表单的 HTML 代码