Django Form常用功能及代码示例

Django的Form主要具有一下几大功能:

  • 生成HTML标签
  • 验证用户数据(显示错误信息)
  • HTML Form提交保留上次提交数据
  • 初始化页面显示内容

views.py

from django.shortcuts import render

# Create your views here.

from django.forms import Form
from django.forms import widgets
from django.forms import fields

# 对form表单进行数据验证
class LoginForm(Form):
  user = fields.CharField(required=True) # 不能为空
  pwd = fields.CharField(min_length=18)

def login(request):
  if request.method == "get":
    return render(request, 'login.html')
  else:
    obj = LoginForm(request.POST)#request.POST拿到的是POST的数据
    """
    is_valid
    1. 获取当前类中所有的字段
      -LoginForm实例化时候,放入
        self.fields = {
            'user':正则表达式,
            'pwd':正则表达式
              }
    2.循环self.fields
    flag = True

    for k,v in self.fields.items():
      k是:user,pwd
      v是:正则表达式
      input_value = requests.POST.get(k)
      flag = False
    return flag

    """
    if obj.is_valid():
      print(obj.cleaned_data)#字典数据
    else:
      # print(obj.errors)#返回的是个err对象
      print(obj.errors)#返回的是个err对象

    return render(request,'login.html')

login.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
<h1>用户登录</h1>

<form action="/login/" method="POST">
  {% csrf_token %}
  用户名 <input type="text" name="user">
  密码 <input type="password" name="pwd">
  <input type="submit" value="提交">

</form>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Django 构建模板form表单的两种方法

    通常情况下,我们想构建一张表单时会在模板文件login.html中写入 <form action="/your-name/" method="post"> <label for="your_name">Your name: </label> <input id="your_name" type="text" name="your_name" va

  • django为Form生成的label标签添加class方式

    使用Form生成html标签的时候,虽然提供了widget的方法可以自定义标签的要是,但是只能给生成的input标签添加样式,对于生成的label标签无法添加样式. 而很多场景下需要为label和input都添加class以实现自定义样式. 测试环境 创建一个Form,通过Form帮我们生成HTML: # urls.py 文件,对应关系 path('email/', views.email), # forms.py 文件 from django.forms import Form from dj

  • django xadmin中form_layout添加字段显示方式

    需求: 用的是django的框架,想显示一个基本固定的页面,用到了form_layout 上图的ROW中添加的是model中的字段名,可以显示对应的内容,如果想一行显示多个,可以写成 Row('Flow_type', 'Demand_name'),效果如下图(图片是别人的,借鉴一下) 想正常的显示,还有最后一步就是在把你需要展示的ROW中的字段,放在fields中(部分截取了一下) 补充知识:xadmin 编辑页隐藏字段 引用xadmin 的fieldSet 对不想显示的字段添加**{"styl

  • Django视图、传参和forms验证操作

    简介视图 主要内容:URLconf.HttpRequest对象.HttpResponse 1)视图接受Web请求并且返回Web响应 2)视图就是一个python函数,被定义在views.py中 3)响应可以是一张网页的HTML内容,一个重定向,一个404错误等等 4)在http请求中产生两个核心对象,所在位置是,django.http: http请求:HttpRequest对象 http响应:HttpResponse对象 这两个对象是由django帮我构造的 URLconf相关概述 • 在set

  • django form和field具体方法和属性说明

    表单输出选项 {{ form.as_table }}:以表格形式加载表单元素 {{ form.as_p }}:以段落形式加载表单元素 {{ form.as_ul }:以列表形式加载表单元素 表单相关的属性 {{ field.label }}:字段对应的<lable>标签的文字,例如"发件人". {{ field.label_tag }}:字段对应的<lable>标签. {{ field.id_for_label }}:字段的"id"属性值.

  • Django ModelForm操作及验证方式

    一.内容回顾 Model - 数据库操作 - 验证 class A(MOdel): user = email = pwd = Form - class LoginForm(Form): email = fields.EmailField() user = pwd = - is_valid -> 每一个字段进行正则(字段内置正则)+clean_字段 -> clean(__all__) -> _post_clean - cleand_data - error --------> 推荐F

  • Django Form设置文本框为readonly操作

    用Django开发网站的时候,前端页面内的文本框总是不能被设置为只读,找了一些资料发现可以在form class里面进行设置. 方法一: 首先在自己创建的form.py文件中创建一个my_info_form 类: ** In form.py file ** """ 1. 利用Django form创建自己需要的表单 """ class my_info_form(forms.Form): user_id = forms.IntegerField()

  • Django框架获取form表单数据方式总结

    Django中获取text,password 名字:<input type="text" name="name"><br><br> 密码:<input type="password" name="password"> Form表单提交数据时使用的是post方式,所以在后端接收参数的时候需要先判断请求方式为post时才能请求到数据 name = request.POST.get('

  • Django Form常用功能及代码示例

    Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 views.py from django.shortcuts import render # Create your views here. from django.forms import Form from django.forms import widgets from django.forms import fields # 对form

  • python几种常用功能实现代码实例

    这篇文章主要介绍了python几种常用功能实现代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.python 程序退出的几种方式 import sys sys.exit() sys.exit(0) sys.exit(1) 或者 os._exit() 该方法中包含一个参数status,默认为0,表示正常退出,也可以为1,表示异常退出 2. python实现获取电脑IP.主机名.Mac地址 import socket import uui

  • .NET 常用功能和代码小结

    1. 打开新的窗口并传送参数: 传送参数: response.write("<script>window.open('*.aspx?id="+this.DropDownList1.SelectIndex+"&id1="+...+"')</script>") 接收参数: string a = Request.QueryString("id"); string b = Request.QuerySt

  • Django haystack实现全文搜索代码示例

    一.使用的工具 haystack是django的开源搜索框架,该框架支持Solr,Elasticsearch,Whoosh,*Xapian*搜索引擎,不用更改代码,直接切换引擎,减少代码量. 搜索引擎使用Whoosh,这是一个由纯Python实现的全文搜索引擎,没有二进制文件等,比较小巧,配置比较简单,当然性能自然略低. 中文分词Jieba,由于Whoosh自带的是英文分词,对中文的分词支持不是太好,故用jieba替换whoosh的分词组件. 其他:Python 3.4.4, Django 1.

  • js实现截图保存图片功能的代码示例

    前几天公司项目里有这样一个需求,把网页的某一部分能够一键截图.这个功能其实就是对人力的一个优化,如果是人为做的话,相信大家都知道怎么做(用截图工具在指定区域截图,然后保存到本地,再上传的服务器上去).我这个主要就解决这个批量的人力的优化.好,废话不多说了.直接上逻辑和代码.' 这个问题的解决方案:html to canvas to png. 目前有一个这样的插件: html2canvas, html2canvas($targetElem, { useCORS: true, onrendered:

  • wordpress自定义url参数实现路由功能的代码示例

    经过两天的正则表达式的学习,和研究wordpress的路由函数,成功实现了自定义wordpress路由功能,以下是路由规则的实现.如果有自定义的url参数,要通过路由传递,必须通过wordpress的函数将参数添加进去: 复制代码 代码如下: //add query_argsfunction add_query_vars($aVars) {    $aVars[] = 'score';    $aVars[] = 'type'; // represents the name of the pro

  • Django celery异步任务实现代码示例

    最近项目中用到celery很多,Django快速接入celery,这里给份教程. 准备 pip安装celery.flower.eventlet 快速接入 1.项目目录的__init__文件 from __future__ import absolute_import # This will make sure the app is always imported when # Django starts so that shared_task will use this app. from .c

  • Android中实现基本的短信拦截功能的代码示例

    要点 1.在Manifest.xml里加"接收"SMS的权限 <uses-permission Android:name="android.permission.RECEIVE_SMS"></uses-permission> 2.在Manifest.xml里注册一个receive <!-- 注册Receiver,并且设置优先级 --> <receiver android:name=".AutoSMS" a

  • vue+axios 前端实现的常用拦截的代码示例

    Axios拦截器配置 main.js //定义一个请求拦截器 Axios.interceptors.request.use(function(config){ store.state.isShow=true; //在请求发出之前进行一些操作 return config }) //定义一个响应拦截器 Axios.interceptors.response.use(function(config){ store.state.isShow=false;//在这里对返回的数据进行处理 return co

  • UI自动化定位常用实现方法代码示例

    8大基础定位 driver.find_element_by_id() # id定位 driver.find_element_by_name() # name定位 driver.find_element_by_class_name() # class名称定位 driver.find_element_by_tag_name() # 标签定位 driver.find_element_by_xpath() # xpath定位 driver.find_element_by_css_selector() #

随机推荐