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 相关文章推荐
Django与遗留的数据库整合的方法指南
Jul 24 Python
解决Python 遍历字典时删除元素报异常的问题
Sep 11 Python
python中pandas.DataFrame对行与列求和及添加新行与列示例
Mar 12 Python
Python实现的随机森林算法与简单总结
Jan 30 Python
TensorFlow损失函数专题详解
Apr 26 Python
django rest framework 数据的查找、过滤、排序的示例
Jun 25 Python
Python最小二乘法矩阵
Jan 02 Python
python格式化输出保留2位小数的实现方法
Jul 02 Python
使用python实现男神女神颜值打分系统(推荐)
Oct 31 Python
vue学习笔记之动态组件和v-once指令简单示例
Feb 29 Python
文件上传服务器-jupyter 中python解压及压缩方式
Apr 22 Python
python基础之//、/与%的区别详解
Jun 10 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
NOD32 v2.70.32 简体中文封装版 提供下载了
2007/02/27 PHP
php+AJAX传送中文会导致乱码的问题的解决方法
2008/09/08 PHP
隐性调用php程序的方法
2009/03/09 PHP
php Smarty date_format [格式化时间日期]
2010/03/15 PHP
8个PHP程序员常用的功能汇总
2014/12/18 PHP
php 生成加密公钥加密私钥实例详解
2017/06/16 PHP
PHP长连接实现与使用方法详解
2018/02/11 PHP
PHP实现长轮询消息实时推送功能代码实例讲解
2021/02/26 PHP
laravel与thinkphp之间的区别与优缺点
2021/03/02 PHP
jQuery 性能优化手册 推荐
2010/02/23 Javascript
分享27个jQuery 表单插件集合推荐
2011/04/25 Javascript
JS 获取浏览器和屏幕宽高等信息代码
2014/03/31 Javascript
jquery UI Datepicker时间控件的使用方法(基础版)
2015/11/07 Javascript
浅谈JavaScript中数组的增删改查
2016/06/20 Javascript
jQuery ajax 当async为false时解决同步操作失败的问题
2016/11/18 Javascript
JS实现获取自定义属性data值的方法示例
2018/12/19 Javascript
微信小程序环境下将文件上传到OSS的方法步骤
2019/05/31 Javascript
js实现文章目录索引导航(table of content)
2020/05/10 Javascript
在vue项目中利用popstate处理页面返回的操作介绍
2020/08/06 Javascript
Map与WeakMap类型在JavaScript中的使用详解
2020/11/18 Javascript
Python编程实现及时获取新邮件的方法示例
2017/08/10 Python
Python遍历numpy数组的实例
2018/04/04 Python
Django基础三之视图函数的使用方法
2019/07/18 Python
利用4行Python代码监测每一行程序的运行时间和空间消耗
2020/04/22 Python
python判断是空的实例分享
2020/07/06 Python
python搜索算法原理及实例讲解
2020/11/18 Python
在HTML5 Canvas中放入图片和保存为图片的方法
2014/05/03 HTML / CSS
美国餐厅用品和厨房设备批发网站:KaTom Restaurant Supply
2018/01/27 全球购物
Brora官网:英国领先的羊绒服装品牌
2019/08/28 全球购物
什么是聚集索引和非聚集索引
2012/01/17 面试题
青年文明号复核材料
2014/02/11 职场文书
中级会计职业生涯规划书
2014/03/01 职场文书
小学生勤俭节约倡议书
2015/04/29 职场文书
详解MySQL事务的隔离级别与MVCC
2021/04/22 MySQL
python ansible自动化运维工具执行流程
2021/06/24 Python
Redis三种集群模式详解
2021/10/05 Redis