参考

参考: django实现内容不清空2种方法

django form的作用

1、生成html标签

2、验证输入内容

form生成表单

zhuji/forms.py

  1. - 实例化表单
  2. - 定制form错误信息
  3. - 定制表单类型
  4. from django import forms
  5. class UserInfo(forms.Form):
  6. user_type_choice = (
  7. (0, u'普通用户'),
  8. (1, u'高级用户'),
  9. )
  10. user_type = forms.IntegerField(widget=forms.widgets.Select(choices=user_type_choice,
  11. attrs={'class': "form-control"}))
  12. email = forms.EmailField(error_messages={'required': "邮箱不能为空"})
  13. host = forms.CharField(error_messages={'required': "主机不能为空"})
  14. port = forms.CharField(error_messages={'required': "端口不能为空"},
  15. widget=forms.TextInput(attrs={'class': "form-control", 'placeholder': "端口"})
  16. )
  17. mobile = forms.CharField(error_messages={'required': "手机不能为空"},
  18. widget=forms.Textarea(attrs={'class': "form-control", 'placeholder': "手机号码"})
  19. )

zhuji/views.py

  1. from zhuji.forms import UserInfo
  2. def user_list(request):
  3. obj = UserInfo()
  4. if request.method == "POST":
  5. user_input_obj = UserInfo(request.POST) #实例化form表单
  6. if user_input_obj.is_valid():#form验证通过
  7. data = user_input_obj.clean()#前端表单获取成一个dict
  8. hostname = data['host']#取出host字段
  9. print(data)
  10. print(hostname)
  11. else:
  12. error_msg = user_input_obj.errors
  13. return render(request, "user_list.html", {'obj': user_input_obj, 'errors': error_msg})#错误信息返回
  14. return render(request, 'user_list.html', {'obj': obj})

templates/user_list.html

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>user_list</title>
  6. </head>
  7. <body>
  8. <div>
  9. <form action="/user_list/" method="post">
  10. <p>用户类型: {{ obj.user_type }} <span>{{ errors.user_type }}</span></p>
  11. <p>主机: {{ obj.host }} <span>{{ errors.host }}</span></p>
  12. <p>邮箱: {{ obj.email }} <span>{{ errors.email }}</span></p>
  13. <p>端口: {{ obj.port }} <span>{{ errors.port }}</span></p>
  14. <p>手机: {{ obj.mobile }} <span>{{ errors.mobile }}</span></p>
  15. <p><input type="submit"></p>
  16. {% csrf_token %}
  17. </form>
  18. </div>
  19. </body>
  20. </html>

[py]django表单不清空实现的2种方法的更多相关文章

  1. form表单上传附件的几种方法

    问题描述:在网页开发过程中,当需要上传附件(图片,音频,视频等)时,常规方法是使用form表单进行提交,这里总结一下form表单提交的几种方法. 参考地址:http://www.cnblogs.com ...

  2. ionic获取表单input的值的两种方法

    1.参数传递法 直接在input处使用 #定义参数的name值,注意在ts中参数的类型 html页面: <ion-input type="text" placeholder= ...

  3. python 全栈开发,Day111(客户管理之 编辑权限(二),Django表单集合Formset,ORM之limit_choices_to,构造家族结构)

    昨日内容回顾 1. 权限系统的流程? 2. 权限的表有几个? 3. 技术点 中间件 session orm - 去重 - 去空 inclusion_tag filter 有序字典 settings配置 ...

  4. python3之Django表单(一)

    1.HTML中的表单 在HTML种,表单是在<form>...</form>种的元素,它允许用户输入文本,选择选项,操作对象等,然后发送这些数据到服务器 表单元素允许用户在表单 ...

  5. Django表单集合----Formset

    概述:Formset(表单集)是多个表单的集合.Formset在Web开发中应用很普遍,它可以让用户在同一个页面上提交多张表单,一键添加多个数据,比如一个页面上添加多个用户信息,下面将会详细讲述如何使 ...

  6. 关于创建Django表单Forms继承BaseForm的问题

    在创建Django表单时,因为需要验证用户输入的验证码是否正确,因此需要在session里提取当前验证码的值和POST提交过来的值进行比对,如图: form.py from django import ...

  7. Django表单集合Formset的高级用法

    Formset(表单集)是多个表单的集合.Formset在Web开发中应用很普遍,它可以让用户在同一个页面上提交多张表单,一键添加多个数据,比如一个页面上添加多个用户信息.今天小编我就介绍下Djang ...

  8. django表单使用

    一.表单常用字段类型及参数 表单可以自动生成html代码,每一个字段默认有一个html显示样式,大多数默认为输入框. 字段相当于正则表达式的集合,能够对表单传入的数据进行校验,并且某一部分校验失败时会 ...

  9. 第四章:Django表单 - 1:使用表单

    假设你想从表单接收用户名数据,一般情况下,你需要在HTML中手动编写一个如下的表单元素: <form action="/your-name/" method="po ...

随机推荐

  1. ngingx安装错误 ./configure: error: the HTTP rewrite module requires the PCRE library.

    有时候,我们需要单独安装nginx,来处理大量的下载请求.单独在Centos5安装nginx遇到的rewrite和HTTP  cache错误解决办法: wget http://nginx.org/do ...

  2. Win8交互UX——触摸板交互

    针对触摸输入优化 Window 应用商店应用设计,并在默认情况下获得触摸板支持. 设计用户可以通过触摸板交互的 Windows 应用商店应用. 触摸板结合间接的多点触控输入和指针设备(如鼠标)的精确输 ...

  3. 例说hg(五)————创建repository

    本文由博主原创,转载请注明出处(保留此处和链接): IT人生(http://blog.csdn.net/robinblog/article/details/17933747) 有很多网站提供了免费的M ...

  4. web应用安全防范(1)—为什么要重视web应用安全漏洞

    现在几乎所有的平台都是依赖于互联网构建核心业务的. 自从XP年代开始windows自带防火墙后,传统的缓冲器溢出等攻击失去了原有威力,黑客们也把更多的目光放在了WEB方面,直到进入WEB2.0后,WE ...

  5. Makefile 链接静态库

    Linux的静态库是以.a结尾的,要连接静态库有两种方法,一种是在编译命令最后直接加上库路径/库名称. 例如你的库在绝对目录/lib/libtest.a下面你就可以这样来编译$(CC) $(CFLAG ...

  6. css布局 - 常规上中下分左右布局的一百种实现方法(更新中...)

    一. 上中下左固定 - fixed+margin 概括:如图,此种布局就是顶部.底部和左侧固定不动,只有中间右侧超出可滚动. html: <header>我是头部position: fix ...

  7. VC++生成不同的随机数

    其用法是先调用srand函数,如 srand( (unsigned)time( NULL ) ) 这样可以使得每次产生的随机数序列不同.假如计算伪随机序列的初始数值(称为种子)相同,则计算出来的伪随机 ...

  8. Microsoft Security Essentials

    https://support.microsoft.com/zh-cn/help/18900/consumer-antivirus-software-providers-for-windows   适 ...

  9. Ubuntu 14.04 LTS 火狐浏览器中,鼠标选择文字被删除的解决办法

    这篇文章主要介绍了Ubuntu 火狐浏览器中,鼠标选择文字被删除的解决办法,需要的朋友可以参考下在终端中输入命令: ibus-setup将 “在应用程序窗口中启用内嵌编辑模式“ 选项取消

  10. ActiveMQ 消息持久化到数据库(Mysql、SQL Server、Oracle、DB2等)

    ActiveMQ具体就不介绍了,直接介绍如何讲ActiveMQ持久化到本地数据库,以SQL Server 2008 R2为例1.下载ActiveMQ后直接解压,我下载的是apache-activemq ...