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实现带验证码网站的自动登陆实现代码
Jan 12 Python
python中日期和时间格式化输出的方法小结
Mar 19 Python
Python中常见的数据类型小结
Aug 29 Python
Python实现二维有序数组查找的方法
Apr 27 Python
python中pika模块问题的深入探究
Oct 13 Python
python 实现数字字符串左侧补零的方法
Dec 04 Python
python区分不同数据类型的方法
Oct 14 Python
python如何求数组连续最大和的示例代码
Feb 04 Python
pycharm新建Vue项目的方法步骤(图文)
Mar 04 Python
python应用Axes3D绘图(批量梯度下降算法)
Mar 25 Python
python能开发游戏吗
Jun 11 Python
matplotlib基础绘图命令之errorbar的使用
Aug 13 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
关于二级目录拖拽排序的实现(源码示例下载)
2013/04/26 PHP
WordPress中用于获取文章信息以及分类链接的函数用法
2015/12/18 PHP
Zend Framework入门教程之Zend_View组件用法示例
2016/12/09 PHP
PHP实现生成模糊图片的方法示例
2017/12/21 PHP
W3C Group的JavaScript1.8 新特性介绍
2009/05/19 Javascript
jQuery+ajax实现顶一下,踩一下效果
2010/07/17 Javascript
Jquery+ajax请求data显示在GridView上(asp.net)
2010/08/27 Javascript
JavaScript设计模式之单例模式实例
2014/09/24 Javascript
理解js对象继承的N种模式
2016/01/25 Javascript
Angular.js回顾ng-app和ng-model使用技巧
2016/04/26 Javascript
微信小程序 scroll-view组件实现列表页实例代码
2016/12/14 Javascript
Javascript中引用类型传递的知识点小结
2017/03/06 Javascript
jQuery插件HighCharts实现的2D堆条状图效果示例【附demo源码下载】
2017/03/14 Javascript
详解AngularJs ui-router 路由的简单介绍
2017/04/26 Javascript
vue-cli2.9.3 详细教程
2018/04/23 Javascript
layer.open 子页面弹出层向父页面传输数据的例子
2019/09/26 Javascript
解决Layui数据表格的宽高问题
2019/09/28 Javascript
[01:25]DOTA2超级联赛专访iG 将调整状态找回自己
2013/06/05 DOTA
浅谈Python爬取网页的编码处理
2016/11/04 Python
Python3 适合初学者学习的银行账户登录系统实例
2017/08/08 Python
Python寻找两个有序数组的中位数实例详解
2018/12/05 Python
python判断单向链表是否包括环,若包含则计算环入口的节点实例分析
2019/10/23 Python
Python编程快速上手——Excel表格创建乘法表案例分析
2020/02/28 Python
django配置app中的静态文件步骤
2020/03/27 Python
html5 css3实例教程 一款html5和css3实现的小机器人走路动画
2014/10/20 HTML / CSS
YOINS官网:时尚女装网上购物
2017/03/17 全球购物
关于迟到的检讨书
2014/01/26 职场文书
12月红领巾广播稿
2014/02/13 职场文书
士力架广告词
2014/03/20 职场文书
2015年班组长工作总结
2015/04/10 职场文书
物业接待员岗位职责
2015/04/15 职场文书
2015年管理人员工作总结
2015/05/13 职场文书
公司周年庆典致辞
2015/07/30 职场文书
初中语文教学研修日志
2015/11/13 职场文书
2016年中学清明节活动总结
2016/04/01 职场文书
CocosCreator ScrollView优化系列之分帧加载
2021/04/14 Python