<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表单的提交的更多相关文章

  1. django form表单验证

    一. django form表单验证引入 有时时候我们需要使用get,post,put等方式在前台HTML页面提交一些数据到后台处理例 ; <!DOCTYPE html> <html ...

  2. Django(5) session登录注销、csrf及中间件自定义、django Form表单验证(非常好用)

    一.Django中默认支持Session,其内部提供了5种类型的Session供开发者使用: 数据库(默认) 缓存 文件 缓存+数据库 加密cookie 1.数据库Session 1 2 3 4 5 ...

  3. Django form表单 组件

    目录 Django form表单 组件 Form 组件介绍 普通方式手写注册功能 使用form组件实现注册功能 Form 常用字段与插件 常用字段(必备) 字段参数(必备) 内置验证(必备) 自定义效 ...

  4. JavaScript 创建一个 form 表单并提交

    <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...

  5. 使用ajax方法实现form表单的提交(附源码)

    写在前面的话 在使用form表单的时候,一旦点击提交触发submit事件,一般会使得页面跳转,页面间的跳转等行为的控制权往往在后端,后端会控制页面的跳转及数据传递,但是在某些时候不希望页面跳转,或者说 ...

  6. form表单js提交

    form表单js提交      $('#form1').submit(); 延迟form表单提交 function submitcheck() { $('#light').css('display', ...

  7. 微信自带浏览器不支持form表单post提交方案解决

      微信自带浏览器form表单post提交,Java控制后台获取不到值得解决方案: 第一种:把post改成get请求,但是改后另一个问题来了就是,数据不安全了,连接上都能看到,导致数据会流失,Java ...

  8. 利用 ajax自定义Form表单的提交方式

    需求场景:有时候单纯的form表单无法向后端传递额外的参数 比如需要action传递js异步生成的参数 ,form表单默认的action就无法满足需求,这时就需要我们自定义form表单的提交方式. h ...

  9. form表单的提交方式

    开发中表单提交是很常见的,表单的提交方式也多种方式. 1.使用submit按钮提交表单  <input type="submit"/> <!DOCTYPE htm ...

  10. 使用ajax方法实现form表单的提交

    作者:13 GitHub:https://github.com/ZHENFENG13 版权声明:本文为原创文章,未经允许不得转载. 写在前面的话 在使用form表单的时候,一旦点击提交触发submit ...

随机推荐

  1. SQL Server调试常用参数

    SQL Server 清除缓存: DBCC DROPCLEANBUFFERS 从缓冲池中删除所有清除缓冲区. DBCC FREEPROCCACHE 从过程缓存中删除所有元素. DBCC FREESYS ...

  2. C# Best Practices - Specify Clear Method Parameters

    Improve parameters parameter order public OperationResult PlaceOrder(Product product, int quantity, ...

  3. struts的常用配置

    struts.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUB ...

  4. this class is not key value coding-compliant for the key detailItem

    我出这个错误是因为,自己的一个视图没有给指定想用的viewController文件..及一个classController控制一个xib文件,忘给该视图指定控制器了.

  5. XML 反序列化为Model

    什么也不多说,直接贴代码 需要反序列的XML <?xml version='1.0' encoding='utf-8' ?> <GetCitiesListResponse> & ...

  6. 移动平台WEB前端开发技巧汇总(转)

    最近我很关注移动前端的知识,但做为一个UI设计师和web前端工作人员没有这个工作环境接触,做为门外汉,网上系统的知识也了了,一直有种雾里看花的感觉,见到本文,我自己是奉为经典.所以我分享之后又专门打笔 ...

  7. QStringLiteral的两篇外文解释(编译期转换成QString)

    http://blog.qt.io/blog/2014/06/13/qt-weekly-13-qstringliteral/ https://woboq.com/blog/qstringliteral ...

  8. 强大的Mockito测试框架(转)

    1.自动生成Mock类在需要Mock的属性上标记@Mock注解,然后@RunWith中配置Mockito的TestRunner或者在setUp()方法中显示调用MockitoAnnotations.i ...

  9. 链接分析算法之:主题敏感PageRank

    链接分析算法之:主题敏感PageRank     前面的讨论提到.PageRank忽略了主题相关性,导致结果的相关性和主题性降低,对于不同的用户,甚至有很大的差别.例如,当搜索“苹果”时,一个数码爱好 ...

  10. UISearchBar去除底部黑线问题

    有时我们在设置搜索框的时候底部会出现一条黑线,要 去除这黑线只需设置. [self.searchBar setBackgroundImage:[UIImage new]];