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 正则式 概述及常用字符
May 07 Python
python中global与nonlocal比较
Nov 21 Python
Python Sleep休眠函数使用简单实例
Feb 02 Python
Python smallseg分词用法实例分析
May 28 Python
Request的中断和ErrorHandler实例解析
Feb 12 Python
python之信息加密题目详解
Jun 26 Python
Python使用Pandas读写Excel实例解析
Nov 19 Python
基于python实现学生信息管理系统
Nov 22 Python
使用python和pygame制作挡板弹球游戏
Dec 03 Python
python分别打包出32位和64位应用程序
Feb 18 Python
使用npy转image图像并保存的实例
Jul 01 Python
python3实现Dijkstra算法最短路径的实现
May 12 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实现的简单缓存类
2015/07/29 PHP
PHP实现的多维数组去重操作示例
2018/07/21 PHP
jQuery checkbox全选/取消全选实现代码
2009/11/14 Javascript
IE6中使用position导致页面变形的解决方案(js代码)
2011/01/09 Javascript
给超链接添加特效鼠标移动展示提示信息且随鼠标移动
2013/10/17 Javascript
解决JS中乘法的浮点错误的方法
2014/01/03 Javascript
jquery实现的美女拼图游戏实例
2015/05/04 Javascript
浅析JavaScript函数的调用模式
2016/08/10 Javascript
微信小程序 登录的简单实现
2017/04/19 Javascript
基于jQuery的左滑出现删除按钮的示例
2017/08/29 jQuery
微信小程序倒计时功能实现代码
2017/11/09 Javascript
使用vuex的state状态对象的5种方式
2018/04/19 Javascript
Bootstrap table表格初始化表格数据的方法
2018/07/25 Javascript
浅谈vue中关于checkbox数据绑定v-model指令的个人理解
2018/11/14 Javascript
Layui tree 下拉菜单树的实例代码
2019/09/21 Javascript
JS函数基本定义与用法示例
2020/01/15 Javascript
Python Queue模块详解
2014/11/30 Python
11月编程语言排行榜 Python逆袭C#上升到第4
2017/11/15 Python
Python实现图片拼接的代码
2018/07/02 Python
Python使用pydub库对mp3与wav格式进行互转的方法
2019/01/10 Python
python自动发邮件总结及实例说明【推荐】
2019/05/31 Python
pandas.read_csv参数详解(小结)
2019/06/21 Python
python3实现高效的端口扫描
2019/08/31 Python
opencv python图像梯度实例详解
2020/02/04 Python
python:删除离群值操作(每一行为一类数据)
2020/06/08 Python
Python爬虫之Selenium多窗口切换的实现
2020/12/04 Python
CSS3教程(7):CSS3嵌入字体
2009/04/02 HTML / CSS
CSS3实现文字波浪线效果示例代码
2016/11/20 HTML / CSS
美国高档百货Nordstrom的折扣店:Nordstrom Rack
2017/11/13 全球购物
goodhealth官方海外旗舰店:新西兰国民营养师
2017/12/15 全球购物
abstract是什么意思
2012/02/12 面试题
自动化专业职业生涯规划书范文
2014/01/16 职场文书
2015年转正工作总结范文
2015/04/02 职场文书
2016年父亲节寄语
2015/12/04 职场文书
学校中层领导培训心得体会
2016/01/11 职场文书
Go中的条件语句Switch示例详解
2021/08/23 Golang