美文网首页
Django表单使用介绍

Django表单使用介绍

作者: 我的袜子都是洞 | 来源:发表于2018-11-19 19:40 被阅读26次

Django版本:2.1.3
Django表单非常强大,熟悉后可以大大提高工作效率。

Django表单分为两种使用方法:

  • GET
  • POST

GET方法:直接明文显示在URL中(如:https://docs.djangoproject.com/search/?q=forms&release=1),通过URL处理数据,GET方法可以用来直接保存书签、分享或重新提交,但由于明文显示,故而数据不安全。

POST方法:浏览器会封装编码数据,进行传输,而且POST方法比GET方法传输内容支持更大。

Django中使用GET方法:

非常简单,举个栗子,访问url:http://127.0.0.1:8000/form/get_method/?a=21313&b=2323,读取url中的GFT方法提供的a,b的数据。关键代码如下:

urls.py

from django.urls import path 
from . import views
urlpatterns = [   
    path('get_method/', views.get_method ),
]

views.py

from django.http import HttpResponse
def get_method(request):
    if request.method == 'GET':
        get_values = request.GET 
        a = get_values['a']
        b = get_values['b']
        str = "a value="+a+"<br/>b vlaue="+b
        return HttpResponse(str)

判断是不是GET方法,然后读取GET的数据,像字典一样读值,非常简单吧!


GET方法效果

Django中使用POST方法:

POST方法是重点,需要理解和用的东西很多。
Django会处理涉及表单的三个不同部分:

  • 准备并重组数据,以便下一步的渲染
  • 为数据创建HTML 表单
  • 接收并处理客户端提交的表单及数据

Django表单系统的核心组件是 Form类。它与Django模型描述对象的逻辑结构、行为以及它呈现给我们内容的形式的方式大致相同,Form 类描述一张表单并决定它如何工作及呈现。

再举个栗子,构建表单来获取用户的姓名:
在工程中新建forms.py文件:

from django import forms 
class NameForm(forms.Form):
    # name字段,我们要获取的字段
    name = forms.CharField(label='姓名', max_length=100)

视图views.py文件:

from django.shortcuts import render
from django.http import HttpResponseRedirect,HttpResponse
from .forms import NameForm 

def get_name(request):
    if request.method == "POST":
        form = NameForm(request.POST)
        # is_valid():字段验证通过为True
        if form.is_valid():
            return HttpResponseRedirect('/thanks/')
    else:
        form = NameForm()
    return render(request,  'form_test/name.html' ,{'form': form})

模板name.html文件:

<form action="/get_name/" method="post">
    {% csrf_token %}
    {{ form }}
    <input type="submit" value="提交姓名" />
</form>

效果如图:

获取姓名表单 效果图
HTML代码中的tr标签里所有部分都是Form类帮助我们生成的:
<form action="/get_name/" method="post">
    <input type="hidden" name="csrfmiddlewaretoken" value="9mHZLHznXhfJTtRiUYRhVy9wyKC9gxH0QN17jzTNW70LLQYLqQxH86CZvqh5Q6sC">
    <tr>
        <th>
            <label for="id_name">姓名:</label></th><td><input type="text" name="name" maxlength="100" required id="id_name">
        </td>
    </tr>
    <input type="submit" value="提交姓名" />
</form>

Form中除了CharField字段类型还有很多实用的类型:

  • ChoiceField
    字符串
  • ChoiceField
  • TypedChoiceField
  • DateField
    日期
  • DateTimeField
    日期+时间
  • DecimalField
  • DurationField
  • EmailField
    电子邮件类型
  • FileField
    文件类型
  • FilePathField
    文件路径
  • FloatField
  • ImageField
  • IntegerField
  • GenericIPAddressField
  • MultipleChoiceField
  • TypedMultipleChoiceField
  • NullBooleanField
  • RegexField
  • SlugField
  • TimeField
  • URLField
  • UUIDField
  • MultiValueField
  • SplitDateTimeField

相关文章

  • Django表单使用介绍

    Django版本:2.1.3Django表单非常强大,熟悉后可以大大提高工作效率。 Django表单分为两种使用方...

  • 02 通过留言版功能回顾django基础知识

    一、django目录介绍 二、配置表单页面 三、django orm介绍与model设计

  • Django表单(二)

    什么是django表单 django中的表单不是html中的那个表单,这里是指django有一个组件名叫表单 它可...

  • django form表单

    使用django表单进行数据验证首先必须导入相关的包 from django import forms 然后导入相...

  • Django表单

    Django表单 一、构建表单 1.直接构建表单 2.Django构建表单 (1)Form 类 forms.py ...

  • Forms#-表单基础

    在Django中创建表单 表单# forms.pyfrom django import formsclass Na...

  • Django教程--Form表单

    Django教程--Form表单 前面我们已经了解如何在django中使用GET、POST传递数据,但是我们并没有...

  • Django基础

    Django介绍: Django简介: 为什么使用Django? 知识储备: 学习目标: DJango初体验: 1...

  • 10 Form表单

    一:什么是Form?什么是Django Form Django的表单系统中,所有的表单类都作为django.for...

  • Django 表单类详解

    本文纯手工搬运,为自己学习记录使用. Django带有一个form库,称为django.forms 表单框架最主要...

网友评论

      本文标题:Django表单使用介绍

      本文链接:https://www.haomeiwen.com/subject/bceafqtx.html