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的form中使用CSS进行设计的方法
Jul 18 Python
python正则表达式爬取猫眼电影top100
Feb 24 Python
Python图像处理之gif动态图的解析与合成操作详解
Dec 30 Python
python使用正则筛选信用卡
Jan 27 Python
django表单的Widgets使用详解
Jul 22 Python
python中with语句结合上下文管理器操作详解
Dec 19 Python
Python loguru日志库之高效输出控制台日志和日志记录
Mar 07 Python
Python面向对象程序设计之私有变量,私有方法原理与用法分析
Mar 23 Python
Python数组拼接np.concatenate实现过程
Apr 18 Python
Python如何发送与接收大型数组
Aug 07 Python
解决python便携版无法直接运行py文件的问题
Sep 01 Python
python3从网络摄像机解析mjpeg http流的示例
Nov 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
php中get_headers函数的作用及用法的详细介绍
2013/04/27 PHP
PHP获取MAC地址的具体实例
2013/12/13 PHP
php实现批量下载百度云盘文件例子分享
2014/04/10 PHP
php实现图片上传、剪切功能
2016/05/07 PHP
[原创]php使用curl判断网页404(不存在)的方法
2016/06/23 PHP
一个判断email合法性的函数[非正则]
2008/12/09 Javascript
jquery ajax 检测用户注册时用户名是否存在
2009/11/03 Javascript
Javascript学习笔记4 Eval函数
2010/01/11 Javascript
jQuery学习笔记之jQuery原型属性和方法
2014/06/09 Javascript
js鼠标滑过图片震动特效的方法
2015/02/17 Javascript
在JavaScript中操作数组之map()方法的使用
2015/06/09 Javascript
AngularJS中$interval的用法详解
2016/02/02 Javascript
深入理解AngularJs-scope的脏检查(一)
2017/06/19 Javascript
10个经典的网页鼠标特效代码
2018/01/09 Javascript
浅谈js获取ModelAndView值的问题
2018/03/28 Javascript
Koa2微信公众号开发之消息管理
2018/05/16 Javascript
React中嵌套组件与被嵌套组件的通信过程
2018/07/11 Javascript
element-ui 关于获取select 的label值方法
2018/08/24 Javascript
JS使用setInterval计时器实现挑战10秒
2020/11/08 Javascript
[59:48]LGD vs IG 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python2与Python3的区别实例分析
2019/04/11 Python
python导入pandas具体步骤方法
2019/06/23 Python
基于pytorch的保存和加载模型参数的方法
2019/08/17 Python
python如何基于redis实现ip代理池
2020/01/17 Python
python扫描线填充算法详解
2020/02/19 Python
浅谈python print(xx, flush = True) 全网最清晰的解释
2020/02/21 Python
scrapy结合selenium解析动态页面的实现
2020/09/28 Python
美国最大的在线水培用品商店:GrowersHouse.com
2018/08/14 全球购物
澳大利亚手袋、珠宝和在线时尚精品店:The Way
2019/12/21 全球购物
酒店应聘自荐信
2013/11/09 职场文书
计算机应用与科学个人的自我评价
2013/11/15 职场文书
学生党员检讨书范文
2014/12/27 职场文书
活动经费申请报告
2015/05/15 职场文书
2015年公司国庆放假通知
2015/07/30 职场文书
《孙子兵法》:欲成大事者,需读懂这些致胜策略
2019/08/23 职场文书
Win11怎么添加用户?Win11添加用户账户的方法
2022/07/15 数码科技