Django--form保存用户输入内容
需求
用户提交form时,如果报错,页面中的用户信息还在(除了密码),没有被刷新掉,不用用户再次输入。
速查
views.py
1
2
3
|
def login(request): obj = django表单生成文件.类(request.POST) #创建form实例化,request.POST默认=空 return render(request, '请求的html' ,{ 'obj' :obj}) |
知识点
request.POST默认=空
html中form提交method="post"是小写,Django中request.method判断时候"POST"是大写,因为Django自己调用了uper方法。
报错刷新页面时,实例化的form表单中应该有数据,即request.POST
详细
1、准备一个Django-form登录框
path
request.POST默认=空
html中form提交method="post"是小写,Django中request.method判断时候"POST"是大写,因为Django自己调用了uper方法。
报错刷新页面时,实例化的form表单中应该有数据,即request.POST
1、准备一个Django-form登录框
path
templates/login.html
1
2
3
4
5
|
< form action = "/login/" method = "post" > < p >{{ obj.username }}</ p > < p >{{ obj.password }}</ p > < input type = "submit" value = "submit" /> </ form > |
app01/forms/account.py
1
2
3
4
5
|
from django import forms class LoginForm(forms.Form): username = forms.CharField() password = forms.CharField(widget = forms.PasswordInput()) |
app01/views/account.py
1
2
3
4
5
|
from app01.forms import account as AccountForm def login(request): obj = AccountForm.LoginForm() return render(request, 'account/login.html' ,{ 'obj' :obj}) |
2、进一步演化
请求发送后,form表单中有了提交的所有数据,如果报错,会把所有提交的信息返回原来的页面中,不用再次输入。
app01/views/account.py
1
2
3
4
5
6
|
def login(request): if request.method = = 'POST' : input_obj = AccountForm.LoginForm(request.POST) return render(request, 'account/login.html' ,{ 'obj' :input_obj}) obj = AccountForm.LoginForm() return render(request, 'account/login.html' ,{ 'obj' :obj}) |
3、代码简化
默认request.POST为空,当提交请求时,obj中就带了提交的信息,返回页面。
app01/views/account.py
1
2
3
4
5
|
def login(request): obj = AccountForm.LoginForm(request.POST) if request.method = = 'POST' : return render(request, 'account/login.html' ,{ 'obj' :obj}) return render(request, 'account/login.html' ,{ 'obj' :obj}) |
Django--form保存用户输入内容的更多相关文章
- js打印保存用户输入的内容
在用js打印局部页面时,遇到用户新输入的内容没能打印出来,经过观察,发现我采用的js打印方法是读取页面源代码,而用户输入的内容如果不将其写入到页面源代码中去,是打印不出来的,下面是我的解决方法: // ...
- 不让input表单的输入框保存用户输入的历史记录
如何不让input表单的输入框保存用户输入的历史记录. 有时我们在设计网页时不想让表单保存用户输入历史记录,比如一些隐私数据,或一些冲值卡 <input name="test&quo ...
- 微信小程序 获得用户输入内容
在微信小程序里,如何获得用户输入的内容?? js: document.getElementById("Content").value jq:$("#Content&quo ...
- Django学习系列10:保存用户输入——编写表单,发送POST请求
要获取用户输入的待办事项,发送给服务器,这样才能使用某种方式保存待办事项,然后在显示给用户查看. 上次运行测试指出无法保存用户的输入.现在,要使用HTML post请求. 若想让浏览器发送POST请求 ...
- 防御XSS攻击-encode用户输入内容的重要性
一.开场先科普下XSS 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS.恶 ...
- c++之 scanf 接收用户输入内容
该代码全部在Visual Studio 2015中编写,有关VS2015的安装后期在写相关的博客 scanf 介绍 在程序开发中,有时候需要通过获取用户输入的数据,进行对应的操作,scanf就是用来接 ...
- 用户输入内容转换成Pig Latin形式。
//(单词的第一个元音字母之前的一道单词后面,以"ay"结尾,英语单词首字母为元音字母或者没有元音字母的以“ay”为后缀.)package toPigLatin; import j ...
- 5.django笔记之form保存表单信息,动态select
作者:刘耀 一.使用form保存用户输入过的信息 场景:例如 如果用户注册,那么他输入n多个表单之后,那么他提交是时候,如果错误返回的时候,那么需要重新再输入表单内容.这样会影响用户体验,所以,使用f ...
- infopath重复表格无法保存输入内容
现象: infopath重复表格无法保存文本输入内容,可以保存日期控件输入内容 原因: 在重复表中添加格式类型规则导致无法保存.
随机推荐
- c# 统计运行时间
long startTime = Environment.TickCount; long endTime = Environment.TickCount; long totalTime = endTi ...
- mysql中OPTIMIZE TABLE的作用及使用
来看看手册中关于 OPTIMIZE 的描述: OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ... 如果您已经删除 ...
- FastAdmin 将 PHP 框架升级到 ThinkPHP 5.1
FastAdmin 将 PHP 框架升级到 ThinkPHP 5.1 社区经常有人问什么时候升级到 ThinkPHP 5.1,但是 ThinkPHP 5.1 和 ThinkPHP 5.0 差别非常大, ...
- maven搭建
http://blog.csdn.net/zhshulin/article/details/30779873 http://blog.csdn.net/zhshulin/article/details ...
- linux的审计功能(audit)
为了满足这样的需求:记录文件变化.记录用户对文件的读写,甚至记录系统调用,文件变化通知.什么是auditThe Linux Audit Subsystem is a system to Collect ...
- selenium 看有啥api 的文件(文件用编辑器 or 浏览器打开就可以看到有什么 api)
- memcache两种客户端比较
1.memcached client for java 客户端API:memcached client for java 网址:http://www.whalin.com/memcached(我从 h ...
- usb设备驱动程序
韦老师写的,供参考 /* * drivers\hid\usbhid\usbmouse.c */ #include <linux/kernel.h> #include <linux ...
- MSBuild最佳实践
http://stackoverflow.com/questions/3097489/how-to-publish-web-with-msbuild ref: http://msdn.microsof ...
- Lambda中的常用sql方法
1.Groupby 对集合进行分组,如: var dllList = _menuMan.Load(c => c.TXT_ASSEMBLYNAME != null).GroupBy(c=>c ...