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的三目运算符和not in运算符使用示例
Mar 03 Python
Python中的is和id用法分析
Jan 26 Python
在Python下进行UDP网络编程的教程
Apr 29 Python
Python判断变量是否为Json格式的字符串示例
May 03 Python
Python的语言类型(详解)
Jun 24 Python
详解appium+python 启动一个app步骤
Dec 20 Python
python 读取目录下csv文件并绘制曲线v111的方法
Jul 06 Python
python3 flask实现文件上传功能
Mar 20 Python
python 监听salt job状态,并任务数据推送到redis中的方法
Jan 14 Python
利用python如何在前程无忧高效投递简历
May 07 Python
使用IPython或Spyder将省略号表示的内容完整输出
Apr 20 Python
pytorch 如何使用float64训练
May 24 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
一台收音机,让一家人都笑逐颜开!
2020/08/21 无线电
用PHP制作静态网站的模板框架
2006/10/09 PHP
超强分页类2.0发布,支持自定义风格,默认4种显示模式
2007/01/02 PHP
php5新改动之短标记启用方法
2008/09/11 PHP
php中get_defined_constants函数用法实例分析
2015/05/12 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
Cookie跨域问题解决方案代码示例
2020/11/24 PHP
基于jquery实现图片广告轮换效果代码
2011/07/07 Javascript
基于jQuery的输入框在光标位置插入内容, 并选中
2011/10/29 Javascript
javascript间隔刷新的简单实例
2013/11/14 Javascript
JSON中双引号的轮回使用过程中一定要小心
2014/03/05 Javascript
JavaScript运算符小结
2015/06/03 Javascript
JavaScript中Boolean对象的属性解析
2015/10/21 Javascript
体验jQuery和AngularJS的不同点及AngularJS的迷人之处
2016/02/02 Javascript
深入理解JavaScript中的for循环
2017/02/07 Javascript
基于vue2.0+vuex+localStorage开发的本地记事本示例
2017/02/28 Javascript
JavaScript html5 canvas实现图片上画超链接
2017/10/20 Javascript
python+selenium实现京东自动登录及秒杀功能
2017/11/18 Python
Python获取航线信息并且制作成图的讲解
2019/01/03 Python
flask框架自定义过滤器示例【markdown文件读取和展示功能】
2019/11/08 Python
后端开发使用pycharm的技巧(推荐)
2020/03/27 Python
Pytorch 扩展Tensor维度、压缩Tensor维度的方法
2020/09/09 Python
PyCharm最新激活码(2020/10/27全网最新)
2020/10/27 Python
Python系统公网私网流量监控实现流程
2020/11/23 Python
英国、欧洲和全球租车服务:Avis英国
2016/08/29 全球购物
关键字final的用法
2013/10/02 面试题
学前教育专业毕业生自荐信
2013/10/03 职场文书
护理自荐信范文
2013/10/05 职场文书
工作违纪检讨书
2014/02/17 职场文书
民事诉讼授权委托书范文
2014/08/02 职场文书
电大奖学金获奖感言
2014/08/14 职场文书
公司外出活动方案
2014/08/14 职场文书
2014年卫生保健工作总结
2014/12/08 职场文书
2015年毕业生个人自荐书
2015/03/24 职场文书
如何使用php生成zip压缩包
2021/04/21 PHP
python 定义函数 返回值只取其中一个的实现
2021/05/21 Python