Django--form保存用户输入内容

摘要:
需求用户提交form时,如果报错,页面中的用户信息还在,没有被刷新掉,不用用户再次输入。报错刷新页面时,实例化的form表单中应该有数据,即request.POST详细1、准备一个Django-form登录框pathtemplates/login.html12345{{obj.username}}{{obj.password}}app01/forms/account.py12345fromdjangoimportformsclassLoginForm:username=forms.CharField()password=forms.CharFieldapp01/views/account.py12345fromapp01.formsimportaccountasAccountFormdeflogin:obj=AccountForm.LoginForm()returnrender2、进一步演化请求发送后,form表单中有了提交的所有数据,如果报错,会把所有提交的信息返回原来的页面中,不用再次输入。
需求

用户提交form时,如果报错,页面中的用户信息还在(除了密码),没有被刷新掉,不用用户再次输入。

速查

views.py

1
2
3
deflogin(request):
obj =django表单生成文件.类(request.POST) #创建form实例化,request.POST默认=空
returnrender(request,'请求的html',{'obj':obj})
知识点
  • request.POST默认=

  • html中form提交method="post"是小写Django中request.method判断时候"POST"是大写,因为Django自己调用了uper方法。

  • 报错刷新页面时,实例化的form表单中应该有数据,即request.POST


详细

1、准备一个Django-form登录框

path

Django--form保存用户输入内容第1张

templates/login.html
1
2
3
4
5
<formaction="/login/"method="post">
<p>{{ obj.username }}</p>
<p>{{ obj.password }}</p>
<inputtype="submit"value="submit"/>
</form>
app01/forms/account.py
1
2
3
4
5
fromdjango importforms
classLoginForm(forms.Form):
username =forms.CharField()
password =forms.CharField(widget=forms.PasswordInput())
app01/views/account.py
1
2
3
4
5
fromapp01.forms importaccount as AccountForm
deflogin(request):
obj =AccountForm.LoginForm()
returnrender(request,'account/login.html',{'obj':obj})

2、进一步演化

请求发送后,form表单中有了提交的所有数据,如果报错,会把所有提交的信息返回原来的页面中,不用再次输入。

app01/views/account.py
1
2
3
4
5
6
deflogin(request):
ifrequest.method =='POST':
input_obj =AccountForm.LoginForm(request.POST)
returnrender(request,'account/login.html',{'obj':input_obj})
obj =AccountForm.LoginForm()
returnrender(request,'account/login.html',{'obj':obj})

3、代码简化​

默认request.POST为空,当提交请求时,obj中就带了提交的信息,返回页面。

app01/views/account.py

1
2
3
4
5
deflogin(request):
obj =AccountForm.LoginForm(request.POST)
ifrequest.method =='POST':
returnrender(request,'account/login.html',{'obj':obj})
returnrender(request,'account/login.html',{'obj':obj})

来自为知笔记(Wiz)

免责声明:文章转载自《Django--form保存用户输入内容》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇使用numpy教你复习线性代数基础[转]慎用InputStream的read()方法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

java关于传值与传引用

关于java传值还是传引用的问题经常出现在一些烦人的面试题中,主要考察个人对java基础的掌握情况。 首先明确一下:本地方法中,java的参数传递都是传值。但是如果是远程调用方法时,会将对象本身传递过去 Java是本地编程多是传值,这个值包括基本值和引用值,分别对应基本类型和引用类型。基本类型就不说了。 引用类型虽然是传值,但是却表现出传引用的效果。传递...

Cesium学习笔记(九):导入3D模型(obj转gltf)

在用cesium的过程中难免需要导入别人做好的3D模型,这时候就需要将这些模型转成gltf格式了 当然,官方也给了我们一个网页版的转换器,但是毕竟是网页版的,效率极其低下,文件还不能太大,所以我们就需要一个格式转换器了 现在只支持obj和dae转gltf,我感觉obj比较方便,所以我用的是obj2gltf,这也是官方推荐的一个,用起来很简单,而且效果和...

【转】Android 源码编译make的错误处理--不错

原文网址:http://blog.csdn.net/ithomer/article/details/6977386 Android源码下载:官方下载或参考android源码下载方式 Android编译版本:PLATFORM_VERSION=4.0.1(最新Android 4.0.1) OS 操作系统平台:Linux yanggang 2.6.35-30-g...

Linux Makefile analysis for plain usr

一、本文主旨   笔者写了一篇linux内核Makefile整体分析 ,测重于理论分析,对于实际应用不算对头,所以需要写一篇实用性较强的文章,为以后内核、驱动移植做好铺垫。 二、本文内容概要 1、编译哪些文件 2、怎样编译这些文件 3、怎样连接这些文件,它们的顺序如何 三、编译哪些文件   本文的实验源码是对“linux-2.6.30.4”进行移植后的运行...

如何使用jQuery向asp.net Mvc传递复杂json数据

前言 jQuery提供的ajax方法能很方便的实现客户端与服务器的异步交互,在asp.net mvc 框架使用jQuery能很方便地异步获取提交数据,给用户提供更好的体验!调用jQuery的ajax方法时,jQuery会根据post或者get协议对参数data进行序列化; 如果提交的数据使用复杂的json数据,例如: {userId:32323,userN...

OBJ格式模型详细介绍

一、OBJ是什么 OBJ 是一种几何定义文件格式,Wavefront Technologies 公司在可视化加强动画包中第一次使用了这个格式,文件格式是公开的,并具有及其优质的兼容性和跨平台、跨行业的通用性,在所有 3D 应用软件中被支持。 OBJ 文件可以以 ASCII 编码也可以以二进制格式编码,以 ASCII 格式编码的后缀名为 .obj,以二进制格...