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#程序添加其他网站的webservice引用。
前言: 有A网站,B网站两个网站独立运行.某一天,需要两个网站进行合作来完成一件事,比如用A网站接收一些数据进行处理,存入中转数据库,B网站定时去取数据进入自己的系统进行处理. 可能我们会先想到在B网 ...
- js 精美倒计时
精美倒计时*{ padding:0; margin:0;}.colockbox{width:250px;height:30px;background:url(/jscss/demoimg/201312 ...
- asp.net 一般处理程序小优化
使用asp.net mvc习惯了,最近项目中又开始使用asp.net,有大量的ajax方法调用,之前有两种方法来处理: Switch case :方法少还行,如果很多,就太蛋疼了,而且方法堆在一块,也 ...
- CMD获取当前目录的绝对路径
@echo offecho 当前盘符:%~d0echo 当前盘符和路径:%~dp0echo 当前批处理全路径:%~f0echo 当前盘符和路径的短文件名格式:%~sdp0echo 当前CMD默认目录: ...
- 企业级IM应该帮助员工提高绩效,避免无关的信息干扰
很多上班族一定熟悉如下的场景: 您早上上班一打开QQ,就弹出一个新闻集成窗口,随便点开看看吧,这一点不要紧,您就被一个又一个的链接带着逛下去了.等回过神来要工作的时候,发现已经在这些八卦新闻上浪费了一 ...
- Android基调(十六)- Service:startService()、stopService()、bindService()、unbindService()加
直行 第一 另外一种 第三种 总结 开门见山 开启服务有三种情况:假设直接使用服务,则没有必要进行绑定,可是假设要使用服务里面的方法.则要进行绑定. 具体的启动情况有下: ①调用startServic ...
- 淘宝PK京东:哥刷的不是广告,刷的是存在
冯强/文 (昨晚看阿根廷vs瑞士时手机上敲的,看完太激动忘发了,现配了图发上来) 这两天,关于京东.淘宝渠道下沉的新闻中,两家略带喜感的农村墙体广告在互联网上传播,例如以下图: 京东这图片,越看越像P ...
- 我写的一个 Qt 显示图片的控件
Qt 中没有专门显示图片的控件.通常我们会使用QLabel来显示图片.可是QLabel 显示图片的能力还是有点弱.比方不支持图像的缩放一类的功能.使用起来不是非常方便. 因此我就自己写了个简单的类. ...
- C与C++ 无参函数的区别
在<C++ 编程思想>:“关于无参函数声明,C与C++有很大的差别.在C语言中,声明int fun1(),意味着一个可以有任意数目和类型的函数:而在C++中,指的却是一个没有参数的函数”. ...
- [Swust OJ 249]--凸包面积
题目链接: http://acm.swust.edu.cn/problem/0249/ 麦兜是个淘气的孩子.一天,他在玩钢笔的时候把墨水洒在了白色的墙上.再过一会,麦兜妈就要回来了, ...