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参数和作用域的使用
Nov 01 Python
python发布模块的步骤分享
Feb 21 Python
Python3之文件读写操作的实例讲解
Jan 23 Python
python遍历小写英文字母的方法
Jan 02 Python
pyQT5 实现窗体之间传值的示例
Jun 20 Python
Python之pymysql的使用小结
Jul 01 Python
pycharm 安装JPype的教程
Aug 08 Python
ubuntu上安装python的实例方法
Sep 30 Python
Python 导入文件过程图解
Oct 15 Python
tensorboard实现同时显示训练曲线和测试曲线
Jan 21 Python
python用什么编辑器进行项目开发
Jun 17 Python
scrapy头部修改的方法详解
Dec 06 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
不用数据库的多用户文件自由上传投票系统(2)
2006/10/09 PHP
php tp验证表单与自动填充函数代码
2012/02/22 PHP
Php中用PDO查询Mysql来避免SQL注入风险的方法
2013/04/25 PHP
PHP5.3新特性小结
2016/02/14 PHP
值得分享的php+ajax实时聊天室
2016/07/20 PHP
微信公众号实现扫码获取微信用户信息(网页授权)
2019/04/09 PHP
滚动经典最新话题[prototype框架]下编写
2006/10/03 Javascript
js tab效果的实现代码
2009/12/26 Javascript
jQuery 源码分析笔记(5) jQuery.support
2011/06/19 Javascript
一个页面放2段图片滚动代码出现冲突的问题如何解决
2012/12/21 Javascript
查看大图功能代码jquery版
2013/11/05 Javascript
jQuery中:hidden选择器用法实例
2014/12/30 Javascript
JS实现可缩放、拖动、关闭和最小化的浮动窗口完整实例
2015/03/04 Javascript
JavaScript中模拟实现jsonp
2015/06/19 Javascript
轻松掌握JavaScript状态模式
2016/09/07 Javascript
Vue.js与 ASP.NET Core 服务端渲染功能整合
2017/11/16 Javascript
JS前端知识点总结之页面加载事件,数组操作,DOM节点操作,循环和分支
2019/07/04 Javascript
聊聊鉴权那些事(推荐)
2019/08/22 Javascript
解决vue.js提交数组时出现数组下标的问题
2019/11/05 Javascript
javascript实现留言板功能
2020/02/08 Javascript
使用Vue+Django+Ant Design做一个留言评论模块的示例代码
2020/06/01 Javascript
[42:32]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第二场 11.27
2020/12/01 DOTA
Python ljust rjust center输出
2008/09/06 Python
Python的ORM框架中SQLAlchemy库的查询操作的教程
2015/04/25 Python
Python实现查找字符串数组最长公共前缀示例
2019/03/27 Python
浅析PyTorch中nn.Module的使用
2019/08/18 Python
python 根据网易云歌曲的ID 直接下载歌曲的实例
2019/08/24 Python
Python3如何使用多线程升程序运行速度
2020/08/11 Python
美国知名平价彩妆品牌:e.l.f. Cosmetics
2017/11/20 全球购物
幼儿园教研活动方案
2014/01/19 职场文书
旅游个人求职信范文
2014/01/30 职场文书
学校联谊活动方案
2014/02/15 职场文书
员工合理化建议书
2014/05/19 职场文书
2015年社区中秋节活动总结
2015/03/23 职场文书
检讨书格式范文
2015/05/07 职场文书
胡桃夹子观后感
2015/06/11 职场文书