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中replace方法实例分析
Aug 20 Python
在Python的gevent框架下执行异步的Solr查询的教程
Apr 16 Python
使用wxPython获取系统剪贴板中的数据的教程
May 06 Python
python如何统计序列中元素
Jul 31 Python
实例讲解Python中浮点型的基本内容
Feb 11 Python
使用python接入微信聊天机器人
Mar 31 Python
在vscode中配置python环境过程解析
Sep 28 Python
python随机生成库faker库api实例详解
Nov 28 Python
python3 实现口罩抽签的功能
Mar 11 Python
selenium+python配置chrome浏览器的选项的实现
Mar 18 Python
利用Python脚本写端口扫描器socket,python-nmap
Jul 23 Python
Python爬取奶茶店数据分析哪家最好喝以及性价比
Sep 23 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&amp;mysql 日期操作小记
2012/02/27 PHP
php检测url是否存在的方法
2015/04/14 PHP
详解php设置session(过期、失效、有效期)
2015/11/12 PHP
javascript 触发事件列表 比较不错
2009/09/03 Javascript
基于jquery的复制网页内容到WORD的实现代码
2011/02/16 Javascript
JS HTML5 音乐天气播放器(Ajax获取天气信息)
2013/05/26 Javascript
Javascript中判断变量是数组还是对象(array还是object)
2013/08/14 Javascript
JavaScript限定图片显示大小的方法
2015/03/11 Javascript
jQuery插件bxSlider实现响应式焦点图
2015/04/12 Javascript
jQuery实现气球弹出框式的侧边导航菜单效果
2015/09/22 Javascript
JS在一定时间内跳转页面及各种刷新页面的实现方法
2016/05/26 Javascript
javascript实现数据双向绑定的三种方式小结
2017/03/09 Javascript
Vue 2.0中生命周期与钩子函数的一些理解
2017/05/09 Javascript
JavaScript基础教程之如何实现一个简单的promise
2018/09/11 Javascript
react高阶组件添加和删除props
2019/04/26 Javascript
axios如何利用promise无痛刷新token的实现方法
2019/08/27 Javascript
vue商城中商品“筛选器”功能的实现代码
2020/07/01 Javascript
SpringBoot在yml配置文件中配置druid的操作
2020/11/16 Javascript
跟老齐学Python之做一个小游戏
2014/09/28 Python
Python中使用语句导入模块或包的机制研究
2015/03/30 Python
Python实现的数据结构与算法之链表详解
2015/04/22 Python
Python实现批量修改文件名实例
2015/07/08 Python
Win10下python3.5和python2.7环境变量配置教程
2018/09/18 Python
Python实现九宫格式的朋友圈功能内附“马云”朋友圈
2019/05/07 Python
Python2.7版os.path.isdir中文路径返回false的解决方法
2019/06/21 Python
Python连接字符串过程详解
2020/01/06 Python
CSS3 :not()选择器实现最后一行li去除某种css样式
2016/10/19 HTML / CSS
canvas实现滑动验证的实现示例
2020/08/11 HTML / CSS
韩国三星旗下的一家超市连锁店:Home Plus
2016/07/30 全球购物
英国伦敦的睡衣品牌:Asceno
2019/10/06 全球购物
财务会计专业毕业生自荐信
2013/10/02 职场文书
毕业生就业自荐书
2013/12/15 职场文书
沙滩主题婚礼活动策划方案
2014/09/15 职场文书
意外伤害赔偿协议书范本
2014/09/28 职场文书
党的群众路线教育实践活动实施方案
2014/10/31 职场文书
公司股份转让协议书范本
2015/01/28 职场文书