django-form表单的提交
<form action="/blog/" method="get">
如果runserver默认启用127.0.0.1:8000的话,且上面这个form是在页面127.0.0.1:8000/test上的表单,则它返回的url为127.0.0.1:8000/blog/,而下面的form返回的url为127.0.0.1:8000/test/blog/,区别是action的值不同。
<form action="blog/" method="post">{%csrf_stoken%}
djangobook2.0中说,在用户浏览表单时,并没有产生post数据,只有submit的时候才产生。
form表单中如果方法是get,则是把提交的信息附加在当前的url中返回。返回的值如果是url,则在当前url中action值添加,再找urlconf中所对应的views.py。如果是文件,则把表单信息返回到其文件中。而post方法,则是在views.py中以request.POST方法来取得表单所提交的信息。
CSRF verification failed错误
通过搜索,大部分给出的解决方法就是添加{%csrf_token%},然后在settings.py中添加上middleware。而网址http://www.qttc.net/201209211.html给出了一个比较全面的解决方法。他的思路值得学习,就是要自己去分析错误,根据错误的提示,找到对应的文档,来获得解决方法,而不是遇到错误就第一时间找百度(因为现在谷歌不好用...)
form框架把每一个field的显示逻辑分离到一个独立的widget中,每一个字段都有默认的widget。理解一下form负责数据校验逻辑,而widget负责显示逻辑。
表单做的第一件事情是把自己显示成一个html。第二件事情是校验数据,form需要绑定,然后校验。每一个字段都有一个对应的错误,所有字段的错误组成了form框架自己的字典表。errors有.is_valid()方法,看是否满足默认的required,还有自定义的clean_方法,相当于附加了自定义的校验条件。form框架先执行valid的默认校验,然后再执行自定义的clean_方法。那么如果满足.is_valid()但是不满足clean_的话,数据库里存的是哪一个数据呢?看文档中要求clean_方法最后一定要返回字段名(field),猜测是存放默认校验后的数据,即使自定义校验不满足,也并不会擦除之前存的数据。需要自己检验一下。第三件事情是数据清理,就是调用.clean_data('字段名')的方法进行数据的清理,取出需要的数据,放进对应的models中。
django-form表单的提交的更多相关文章
- django form表单验证
一. django form表单验证引入 有时时候我们需要使用get,post,put等方式在前台HTML页面提交一些数据到后台处理例 ; <!DOCTYPE html> <html ...
- Django(5) session登录注销、csrf及中间件自定义、django Form表单验证(非常好用)
一.Django中默认支持Session,其内部提供了5种类型的Session供开发者使用: 数据库(默认) 缓存 文件 缓存+数据库 加密cookie 1.数据库Session 1 2 3 4 5 ...
- Django form表单 组件
目录 Django form表单 组件 Form 组件介绍 普通方式手写注册功能 使用form组件实现注册功能 Form 常用字段与插件 常用字段(必备) 字段参数(必备) 内置验证(必备) 自定义效 ...
- JavaScript 创建一个 form 表单并提交
<!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...
- 使用ajax方法实现form表单的提交(附源码)
写在前面的话 在使用form表单的时候,一旦点击提交触发submit事件,一般会使得页面跳转,页面间的跳转等行为的控制权往往在后端,后端会控制页面的跳转及数据传递,但是在某些时候不希望页面跳转,或者说 ...
- form表单js提交
form表单js提交 $('#form1').submit(); 延迟form表单提交 function submitcheck() { $('#light').css('display', ...
- 微信自带浏览器不支持form表单post提交方案解决
微信自带浏览器form表单post提交,Java控制后台获取不到值得解决方案: 第一种:把post改成get请求,但是改后另一个问题来了就是,数据不安全了,连接上都能看到,导致数据会流失,Java ...
- 利用 ajax自定义Form表单的提交方式
需求场景:有时候单纯的form表单无法向后端传递额外的参数 比如需要action传递js异步生成的参数 ,form表单默认的action就无法满足需求,这时就需要我们自定义form表单的提交方式. h ...
- form表单的提交方式
开发中表单提交是很常见的,表单的提交方式也多种方式. 1.使用submit按钮提交表单 <input type="submit"/> <!DOCTYPE htm ...
- 使用ajax方法实现form表单的提交
作者:13 GitHub:https://github.com/ZHENFENG13 版权声明:本文为原创文章,未经允许不得转载. 写在前面的话 在使用form表单的时候,一旦点击提交触发submit ...
随机推荐
- C#中类的运用(Eighth day)
又到了总结知识的时刻了,今天在云和学院学习了类的运用,下面是今天所学知识的总结: 理论: 类的定义语法: [访问修饰符] class 类名 { 成员; // 1.通过字段来描述类别信息的变量 ... ...
- 解决Jedis数据读取乱码问题
现象 同一套代码,同一个数据源,不同的操作系统,在OSX上数据提取编码正常,而Ubuntu上拉取数据乱码,数据拉取代码如下. @Override public List<String> m ...
- 【Linux命令】数据库mysql配置命令
# 检查MySQL服务器系统进程 ~ ps -aux|grep mysql mysql 1103 0.0 0.3 492648 51780 ? Ssl 14:04 0:21 /usr/sbin/mys ...
- django 开发简易博客(二)
这一节我们来了解模板和视图.URL的使用. 一.使用模板 在blog目录中新建templates文件夹,在templates文件夹下新建base.html文件.目录结构如下 templates/ ba ...
- nvl与 is not null的区别等
Oracle中: Select Aae140 From Ab07 Where Aab001 = Pi_Aab001 And Aae002 = Pi_Aae002 ) 1 nvl(aaz288,0)&g ...
- drawInRect:withAttributes:
- (void)drawRect:(CGRect)frame { NSMutableParagraphStyle *textStyle = [[NSMutableParagraphStyle defa ...
- nginx配置ssl加密(单双向认证、部分https)
nginx配置ssl加密(单双向认证.部分https) nginx下配置ssl本来是很简单的,无论是去认证中心买SSL安全证书还是自签署证书,但最近公司OA的一个需求,得以有个机会实际折腾一番.一开始 ...
- 小小换行符乱谈(文本文件vs二进制文件)
使用 C 语言的 fopen 打开文件时,可以指定的 mode 有 12 个,其中 6 个包含 "b" 使用 C++ 的 fstream 打开文件时,可用的模式组合有 24 个( ...
- 数据切分——Atlas读写分离Mysql集群的搭建
关于数据切分的原理可以参见博客: http://blog.csdn.net/jhq0113/article/details/44226789 关于Atlas的介绍可以参见博客: http://blog ...
- 让我们共同构筑物联网起飞的平台:物联网操作系统Hello China寻求应用合作伙伴
经过几天的努力,终于把Hello China V1.76版的内核移植到基于Cortex-M3内核的STM32 chipset上.因为还希望进一步写一个USART驱动程序,因此详细的移植文档,预计一周之 ...