Python中文
首页
教程
问答
标签
搜索
登录
注册
Django是否存在防止重复表单提交的库?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我试图找到一种方法来防止用户重复提交我的表单。我有禁用submit按钮的javascript,但是仍然有一个偶然的用户找到了双重提交的方法。</p> <p>我设想了一个可重用的库,我可以创建这个库来保护它。</p> <p>在我理想的库中,代码块将如下所示:</p> <pre><code>try: with acquire_lock({'field1':'abc', 'field2':'def'}) as lock: response = #do some credit card processing lock.response = response except SubmissionWasDuplicate, e: response = e.response </code></pre> <p>锁表应该是这样的:</p> <p><code>duplicate_submission_locks</code></p> <ul> <li>提交参数的MD5</li> <li>响应#pickled数据</li> <li>创建用于清扫此桌子的</li> <li>lock_expired#布尔值表示锁是否已过期</li> </ul> <p>有人知道这是否已经存在吗?写起来似乎并不难,所以如果它不存在,我可以自己写。</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>解决这个问题的一个简单方法是为每个表单添加一个唯一的散列。然后你可以有一个当前表单的滚动表。提交表单或哈希值太旧时,可以将其从表中过期,并拒绝表中没有匹配哈希值的任何表单。</p> <p>正如前面提到的,HTTPRedirect是正确的方法。</p> <p>不幸的是,即使Django自己的内置管理也容易出现与此问题相关的问题。在某些情况下,跨站点脚本框架可以帮助防止其中的某些情况,但我担心当前的生产版本没有内置此功能。</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
使用Python创建一个非常大的二进制频率矩阵来运行协作过滤
3 回答
使用Python创建一张HTML网页,其中在不同颜色中重复n遍显示“Hello World”的方法
5 回答
使用Python创建一组唯一的值length L
3 回答
使用python创建不同表格的透视表
10 回答
使用python创建不和谐频道
1 回答
使用python创建不存在的多个文件夹
3 回答
使用python创建串行远程文件
5 回答
使用python创建交互式仪表板时出现问题
2 回答
使用python创建交互式绘图
7 回答
使用python创建交互式自动电子邮件
4 回答
使用Python创建价格列表
10 回答
使用python创建修改的txt文件
1 回答
使用Python创建全局变量,初始化后更改值
8 回答
使用Python创建关键字搜索词数组
3 回答
使用Python创建具有不均匀块大小/堆叠条形图的热图
4 回答
使用Python创建具有依赖于另一列的值的列
3 回答
使用Python创建具有多列的HTML表
8 回答
使用Python创建具有时间范围数据的等距数据帧
3 回答
使用Python创建具有特定顺序或属性的XML文件
1 回答
使用Python创建具有级联功能的搜索栏
2 回答