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中的文件I/O操作
May 24 Python
利用Python自动监控网站并发送邮件告警的方法
Aug 24 Python
利用Python破解斗地主残局详解
Jun 30 Python
python中装饰器级连的使用方法示例
Sep 29 Python
Python查找两个有序列表中位数的方法【基于归并算法】
Apr 20 Python
对python数据切割归并算法的实例讲解
Dec 12 Python
pycharm创建一个python包方法图解
Apr 10 Python
5款Python程序员高频使用开发工具推荐
Apr 10 Python
python爬虫解决验证码的思路及示例
Aug 01 Python
Python使用grequests(gevent+requests)并发发送请求过程解析
Sep 25 Python
Python 实现平台类游戏添加跳跃功能
Mar 27 Python
tensorflow使用CNN分析mnist手写体数字数据集
Jun 17 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
在VS2008中编译MYSQL5.1.48的方法
2010/07/03 PHP
php中将网址转换为超链接的函数
2011/09/02 PHP
PHP如何实现Unicode和Utf-8编码相互转换
2015/07/29 PHP
[原创]php正则删除img标签的方法示例
2017/05/27 PHP
PHP命令Command模式用法实例分析
2018/08/08 PHP
JavaScript 嵌套函数指向this对象错误的解决方法
2010/03/15 Javascript
三级下拉菜单的js实现代码
2011/05/23 Javascript
JavaScript 用cloneNode方法克隆节点的代码
2012/10/15 Javascript
js获取键盘按键响应事件(兼容各浏览器)
2013/05/16 Javascript
jquery及原生js获取select下拉框选中的值示例
2013/10/25 Javascript
jquery实现顶部向右伸缩的导航区域代码
2015/09/02 Javascript
jquery对复选框(checkbox)的操作汇总
2016/01/13 Javascript
轻松掌握JavaScript中的Math object数学对象
2016/05/26 Javascript
基于angularjs实现图片放大镜效果
2016/08/31 Javascript
js实现文本上下来回滚动
2017/02/03 Javascript
求js数组的最大值和最小值的四种方法
2017/03/03 Javascript
jQuery插件Echarts实现的渐变色柱状图
2017/03/23 jQuery
微信小程序tabBar用法实例详解
2017/12/04 Javascript
详解项目升级到vue-cli3的正确姿势
2019/01/28 Javascript
20多个小事例带你重温ES10新特性(小结)
2019/09/29 Javascript
微信小程序getLocation 需要在app.json中声明permission字段
2020/03/03 Javascript
Python实现的tab文件操作类分享
2014/11/20 Python
Python字符串中查找子串小技巧
2015/04/10 Python
python提取包含关键字的整行数据方法
2018/12/11 Python
python selenium登录豆瓣网过程解析
2019/08/10 Python
使用Fabric自动化部署Django项目的实现
2019/09/27 Python
python将邻接矩阵输出成图的实现
2019/11/21 Python
python实现简易淘宝购物
2019/11/22 Python
Docker部署Python爬虫项目的方法步骤
2020/01/19 Python
如何真正的了解python装饰器
2020/08/14 Python
纯CSS3实现圆角效果(含IE兼容解决方法)
2014/05/07 HTML / CSS
英国亚马逊官方网站:Amazon.co.uk
2019/08/09 全球购物
美国翻新电子产品商店:The Store
2019/10/08 全球购物
校园报刊亭创业计划书
2014/01/02 职场文书
团代会邀请函
2015/02/02 职场文书
导游词之山东八大关
2019/12/18 职场文书