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求斐波那契数列示例分享
Feb 14 Python
Python中的深拷贝和浅拷贝详解
Jun 03 Python
Python的Django框架下管理站点的基本方法
Jul 17 Python
python结合shell查询google关键词排名的实现代码
Feb 27 Python
Python探索之爬取电商售卖信息代码示例
Oct 27 Python
ubuntu中配置pyqt4环境教程
Dec 27 Python
Python编程实现从字典中提取子集的方法分析
Feb 09 Python
对Python强大的可变参数传递机制详解
Jun 13 Python
Python模块汇总(常用第三方库)
Oct 07 Python
Tensorflow 实现将图像与标签数据转化为tfRecord文件
Feb 17 Python
Python使用plt.boxplot() 参数绘制箱线图
Jun 04 Python
新手学python应该下哪个版本
Jun 11 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
destoon之一键登录设置
2014/06/21 PHP
php使用GeoIP库实例
2014/06/27 PHP
PHP把MSSQL数据导入到MYSQL的方法
2014/12/27 PHP
orm获取关联表里的属性值
2016/04/17 PHP
laravel 使用auth编写登录的方法
2019/09/30 PHP
JS中类或对象的定义说明
2014/03/10 Javascript
jQuery1.9.1针对checkbox的调整方法(prop)
2014/05/01 Javascript
nodeJS代码实现计算交社保是否合适
2015/03/09 NodeJs
jquery实现鼠标滑过小图查看大图的方法
2015/07/20 Javascript
jQuery模拟原生态App上拉刷新下拉加载更多页面及原理
2015/08/10 Javascript
JavaScript中windows.open()、windows.close()方法详解
2016/07/28 Javascript
使用JS代码实现点击按钮下载文件
2016/11/12 Javascript
微信小程序 特效菜单抽屉效果实例代码
2017/01/11 Javascript
bootstrap+jQuery 实现下拉菜单中复选框全选和全不选效果
2017/06/12 jQuery
js实现rem自动匹配计算font-size的示例
2017/11/18 Javascript
微信小程序模版渲染详解
2018/01/26 Javascript
详解小程序毫秒级倒计时(适用于拼团秒杀功能)
2019/05/05 Javascript
微信小程序实现弹出菜单动画
2019/06/21 Javascript
vue服务端渲染操作简单入门实例分析
2019/08/28 Javascript
Python中的下划线详解
2015/06/24 Python
Python实例一个类背后发生了什么
2016/02/09 Python
python爬虫获取京东手机图片的图文教程
2017/12/29 Python
python 对key为时间的dict排序方法
2018/10/17 Python
Python从数据库读取大量数据批量写入文件的方法
2018/12/10 Python
python 实现从高分辨图像上抠取图像块
2020/01/02 Python
基于CSS3的animation属性实现微信拍一拍动画效果
2020/06/22 HTML / CSS
美国女性服饰销售网站:Nasty Gal(坏女孩)
2016/07/26 全球购物
GUESS西班牙官方网上商城:美国服饰品牌
2017/03/15 全球购物
英国Iceland杂货店:网上食品购物
2020/12/16 全球购物
工程专业求职自荐书范文
2014/02/18 职场文书
妇联主席先进事迹
2014/05/18 职场文书
授权委托书(完整版)
2014/09/10 职场文书
手机销售员岗位职责
2015/04/11 职场文书
卫生主题班会
2015/08/14 职场文书
队列队形口号
2015/12/25 职场文书
详解Anyscript开发指南绕过typescript类型检查
2022/09/23 Javascript