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 相关文章推荐
操作Windows注册表的简单的Python程序制作教程
Apr 07 Python
使用Python对MySQL数据操作
Apr 06 Python
pandas apply 函数 实现多进程的示例讲解
Apr 20 Python
Python网络爬虫之爬取微博热搜
Apr 18 Python
Python3 itchat实现微信定时发送群消息的实例代码
Jul 12 Python
python中matplotlib条件背景颜色的实现
Sep 02 Python
Python实现把多维数组展开成DataFrame
Nov 30 Python
python GUI库图形界面开发之PyQt5信号与槽基本操作
Feb 25 Python
在主流系统之上安装Pygame的方法
May 20 Python
python使用Word2Vec进行情感分析解析
Jul 31 Python
python制作一个简单的gui 数据库查询界面
Nov 19 Python
PyCharm 配置SSH和SFTP连接远程服务器
May 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
PHP简介
2006/10/09 PHP
php返回json数据函数实例
2014/10/09 PHP
JS中处理与当前时间间隔的函数代码
2012/05/23 Javascript
jQuery层次选择器选择元素使用介绍
2013/04/18 Javascript
js对象内部访问this修饰的成员函数示例
2014/04/27 Javascript
JavaScript中的eval()函数使用介绍
2014/12/31 Javascript
jQuery手机拨号界面特效代码分享
2015/08/27 Javascript
jQuery实现form表单基于ajax无刷新提交方法详解
2015/12/08 Javascript
jQuery实现元素拖拽并cookie保存顺序的方法
2016/02/20 Javascript
jquery使用Cookie和JSON记录用户最近浏览历史
2016/04/19 Javascript
通过jquery-ui中的sortable来实现拖拽排序的简单实例
2016/05/24 Javascript
jquery判断iPhone、Android设备类型
2016/09/14 Javascript
微信小程序 window_x64环境搭建
2016/09/30 Javascript
jQuery弹出层插件popShow用法示例
2017/01/23 Javascript
深入理解 JavaScript 中的 JSON
2017/04/06 Javascript
Vue.js对象转换实例
2017/06/07 Javascript
使用D3.js制作图表详解
2017/08/13 Javascript
JavaScript时间日期操作实例小结【5个示例】
2018/12/22 Javascript
windows如何把已安装的nodejs高版本降级为低版本(图文教程)
2020/12/14 NodeJs
[06:25]DOTA2英雄梦之声_第17期_大地之灵
2014/06/20 DOTA
python比较2个xml内容的方法
2015/05/11 Python
Python实现将DOC文档转换为PDF的方法
2015/07/25 Python
Python中如何优雅的合并两个字典(dict)方法示例
2017/08/09 Python
Python矩阵常见运算操作实例总结
2017/09/29 Python
15行Python代码实现网易云热门歌单实例教程
2019/03/10 Python
Django 自定义分页器的实现代码
2019/11/24 Python
python装饰器相当于函数的调用方式
2019/12/27 Python
Python request操作步骤及代码实例
2020/04/13 Python
python3 简单实现组合设计模式
2020/07/02 Python
接口自动化多层嵌套json数据处理代码实例
2020/11/20 Python
python利用appium实现手机APP自动化的示例
2021/01/26 Python
Harman Audio官方商店:购买JBL、Harman Kardon、Infinity和AKG
2019/12/05 全球购物
如何保障Web服务器安全
2014/05/05 面试题
目标责任书范本
2014/04/16 职场文书
大学生简历求职信
2014/06/24 职场文书
python 对图片进行简单的处理
2021/06/23 Python