需求

用户提交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

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})

最新文章

  1. BroadcoastReceiver之短信到来监听和获取内容
  2. Java中的public、protected、default和private的区别
  3. 虚拟机中Linux安装Tools
  4. (转)函数中使用 ajax 异步 同步 返回值错误 主函数显示返回值总是undefined -- ajax使用总结
  5. web安全记录
  6. 学习PS必须弄懂的专业术语
  7. 【转】[Mysql] Linux Mysql 日志专题
  8. [高并发]EntityFramework之高性能扩展
  9. easyui Datagrid 表格高度计算及自适应页面的实现
  10. HTTP/1.1 请求方法
  11. chrome新版打开新标签页自动打开谷歌主页
  12. Oracle 表空间的概念
  13. spark 数据读取与保存
  14. SpringBoot08 请求方式、参数获取注解、参数验证、前后台属性名不一致问题、自定义参数验证注解、BeanUtils的使用
  15. The confusion about jsp four scopes and ServletContext,HttpSession,HttpServletReqest,PageContext
  16. PyQt4简单的窗口程序
  17. C#语法之Linq查询基础二
  18. MVC中学到的小知识(MVC中的跳转,传参)
  19. PHP qrcode 生成二维码
  20. springmvc+jsp引用本地图片文件

热门文章

  1. Oracle备份与恢复案例
  2. 阿里云服务器tomcat启动慢解决方案
  3. ubantu 安装tree命令
  4. iframe添加点击事件
  5. ubuntu14.04安装python3.7.1
  6. EditText动态转换只读/编辑状态
  7. FPGA论剑(续)
  8. 使用CMake生成sln项目和VS工程遇到的问题
  9. java代码实现点击鼠标从控制台输出信息
  10. mysql事务之二:MySQL隔离级别演示