python - Pyramid self.request.POST 为空 - 没有可用的发布数据

标签 python forms http-post pyramid

我目前正在开发一个 Pyramid 项目,但是我似乎无法从表单向应用程序提交 POST 数据。

我创建了一个基本表单,例如:


    <form method="post" role="form" action="/account/register">
    <div class="form-group">
        <label for="email">Email address:</label>
        <input type="email" class="form-control" id="email" placeholder="you@domain.com">
        <p class="help-block">Your email address will be used as your username</p>
    </div>

    <!-- Other items removed -->
</form>

我定义了以下路由配置:


    # projects __init__.py file
config.add_route('account', '/account/{action}', request_method='GET')
config.add_route('account_post', '/account/{action}', request_method='POST')

# inside my views file
@view_config(route_name='account', match_param="action=register", request_method='GET', renderer='templates/account/register.jinja2')
def register(self):
    return {'project': 'Register'}

@view_config(route_name='account_post', match_param="action=register", request_method='POST', renderer='templates/account/register.jinja2')
def register_POST(self):
    return {'project': 'Register_POST'}

现在,使用 PyCharm 中的调试器以及 Pyramid 中的调试按钮,我已确认查看表单的初始 GET 请求正在由 register 处理 方法,当我点击提交按钮时,POST 请求由 *register_POST* 方法处理。

但是,我的问题是从 *register_POST* 方法中进行调试时,self.request.POST 字典为空。另外,当我检查页面上的调试按钮时,POST 请求已注册在列表中,但 POST 数据为空。

我是否遗漏了什么,或者是否有其他方式访问 POST 数据?

干杯, 贾斯汀

最佳答案

我已经成功让它工作了。愚蠢的我,来自 ASP.NET 背景,忘记了 POST 表单提交的基础知识,那就是每个表单字段都需要一个 name== 属性。一旦我把它们放进去,一切就开始工作了。

关于python - Pyramid self.request.POST 为空 - 没有可用的发布数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22243208/

相关文章:

python - 每次运行/部署应用程序时,Heroku postgres DB 都会丢弃更改

python - 如何将视频解码/编码为文本文件,然后再返回视频?

javascript - jQuery 表单验证不验证

audio - 如何使用来自 blackberry 5.0 的 HTTP POST 上传音频文件?

python - 使用python发送消息时报错400

php - 从 PHP 文件中的 JSON 数据自动完成文本框

javascript - 获取表单 html 及其值

python - 由于 http 405 错误,使用 POST 从网站自动检索数据无法正常工作

java - 如何在 java 中使用 HttpURLConnection 发送多部分 POST 请求?

python - 找出各种文件python中的常用词