Form表单及django的form表单的补充


Posted in Python onJuly 25, 2019

form 表单中的button按钮

<button>提交</button> :放在form表单中,会有一个提交事件,会提交form数据,

<input type="button" value="提交“> :是一个单纯的按钮,没有任何默认事件,

先匹配url和视图函数

from django.conf.urls import url
from django.contrib import admin

from app01 import views

urlpatterns = [
  url(r'^admin/', admin.site.urls),
  url(r'^login/', views.login),
]

视图函数

def login(request):

  if request.method == "POST":
    return HttpResponse("OK!")



  return render(request,"login.html")

在前端页面的显示

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>

<form action="/login/" method="post">
{# csrf_token 在前端会渲染出一个input标签,是一组键值对,键是csrfmiddlewaretoken,值是随机字符串,会随着下面的input标签一起提交,只有这种形式发送post的请求才能被接收,#}

  {% csrf_token %}
  <p>用户名:<input type="text" name="user"></p>
  <p>密码:<input type="password" name="pwd"></p>
  <input type="submit">

</form>
</body>
</html>

----上面是正常的使用HTML的原生form表单,

现在使用django提供的form表单,在views里要创建一个类,继承django的forms类,

然后在视图函数中实例化出一个form对象,利用类的字段在前端页面进行显示,

as_p 是把后端所有的字段都显示,定制性不好,可以自定义,利用对象,跟上字段

在views 创键类,

from django.shortcuts import render,HttpResponse

# Create your views here.

#使用django的form类
from django import forms

class LoginForm(forms.Form):
  user = forms.CharField()
  pwd = forms.CharField()


def login(request):

  if request.method == "POST":
    return HttpResponse("OK!")

  form_obj = LoginForm() -------------------实例化对象,
  return render(request,"login.html",{"form_obj":form_obj}) ---传到前端显示

在前端接收,渲染

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>

</head>
<body>

<form action="/login/" method="post">
{# csrf_token 在前端会渲染出一个input标签,是一组键值对,键是csrfmiddlewaretoken,值是随机字符串,会随着下面的input标签一起提交,只有这种形式发送post的请求才能被接收,#}

  {% csrf_token %}
  <p>用户名:{{ form_obj.user }}</p> ------------
  <p>密 码:{{ form_obj.pwd }}</p> -------------------
  <input type="submit">

</form>

</body>

</html>

查看前端的元素,

Form表单及django的form表单的补充

---前端现在可以输入数据,但后端要对提交的数据要验证,

用到is_valid()的方法,取到提交的所有数据,cleaned_data , 如果有错误信息 用errors,

#使用django的form类
from django import forms

class LoginForm(forms.Form):
  user = forms.CharField(max_length=9,min_length=5,error_messages={"required":"必填"})
  pwd = forms.CharField()


def login(request):

  if request.method == "POST":
    #post的请求验证
    formobj = LoginForm(request.POST)#拿到所有的提交数据
    if formobj.is_valid():#都符合字段要求,

      #取出所有符合字段要求的数据,用cleaned_data
      print(formobj.cleaned_data)#拿到字典格式的数据

    else:
      print(formobj.errors)#如果是提交错误的数据,用errors



    return HttpResponse("OK!")

  form_obj = LoginForm()



  return render(request,"login.html",{"form_obj":form_obj})

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python查找相似单词的方法
Mar 05 Python
学习python之编写简单乘法口诀表实现代码
Feb 27 Python
深入理解python中的闭包和装饰器
Jun 12 Python
Python的requests网络编程包使用教程
Jul 11 Python
Python基于PyGraphics包实现图片截取功能的方法
Dec 21 Python
python占位符输入方式实例
May 27 Python
Python字符串的一些操作方法总结
Jun 10 Python
python 并发下载器实现方法示例
Nov 22 Python
Python continue语句实例用法
Feb 06 Python
Python GUI库PyQt5样式QSS子控件介绍
Feb 25 Python
jupyter修改文件名方式(TensorFlow)
Apr 21 Python
Matplotlib中rcParams使用方法
Jan 05 Python
python实现切割url得到域名、协议、主机名等各个字段的例子
Jul 25 #Python
python按修改时间顺序排列文件的实例代码
Jul 25 #Python
在python中用url_for构造URL的方法
Jul 25 #Python
对python中url参数编码与解码的实例详解
Jul 25 #Python
使用WingPro 7 设置Python路径的方法
Jul 24 #Python
python selenium 查找隐藏元素 自动播放视频功能
Jul 24 #Python
简单了解Django应用app及分布式路由
Jul 24 #Python
You might like
PHP中return 和 exit 、break和contiue 区别与用法
2012/04/09 PHP
Php中文件下载功能实现超详细流程分析
2012/06/13 PHP
基于Zend的Config机制的应用分析
2013/05/02 PHP
php生成curl命令行的方法
2015/12/14 PHP
PHP获取访问设备信息的方法示例
2019/02/20 PHP
javascript 面向对象编程 function也是类
2009/09/17 Javascript
基于PHP+Jquery制作的可编辑的表格的代码
2011/04/10 Javascript
JS target与currentTarget区别说明
2011/08/28 Javascript
常用js字符串判断方法整理
2013/10/18 Javascript
js中浮点型运算BUG的解决方法说明
2014/01/06 Javascript
jQuery中attr()和prop()在修改checked属性时的区别
2014/07/18 Javascript
基于JavaScript实现跳转提示页面
2016/09/24 Javascript
jquery 标签 隔若干行加空白或者加虚线的方法
2016/12/07 Javascript
原生JS中slice()方法和splice()区别
2017/03/06 Javascript
javaScript实现滚动条事件详解
2020/03/24 Javascript
vue项目中的webpack-dev-sever配置方法
2017/12/14 Javascript
基于JavaScript判断两个对象内容是否相等
2020/01/10 Javascript
python通过pil为png图片填充上背景颜色的方法
2015/03/17 Python
Python初学者常见错误详解
2019/07/02 Python
Python字典深浅拷贝与循环方式方法详解
2020/02/09 Python
深入CSS3 动画效果的总结详解
2013/05/09 HTML / CSS
html5 Canvas绘制线条 closePath()实例代码
2012/05/10 HTML / CSS
澳大利亚小众服装品牌:Maurie & Eve
2018/03/27 全球购物
德国领先的大尺码和超大尺码男装在线零售商:Bigtex
2019/06/22 全球购物
教育局长自荐信范文
2013/12/22 职场文书
竞聘书模板
2014/03/31 职场文书
伦敦奥运会口号
2014/06/13 职场文书
安全例会汇报材料
2014/08/23 职场文书
工作经常出错的检讨书
2014/09/13 职场文书
初中生庆国庆演讲稿范文2014
2014/09/25 职场文书
离婚协议书范本2014
2014/10/27 职场文书
党校个人总结
2015/03/04 职场文书
大学生社会实践活动总结报告
2015/05/06 职场文书
2015年校医个人工作总结
2015/07/24 职场文书
2016幼儿园中班开学寄语
2015/12/03 职场文书
go语言中GOPATH GOROOT的作用和设置方式
2021/05/05 Golang