zoukankan      html  css  js  c++  java
  • django 表单系统 之 forms.Form

    继承forms.Form实现django表单系统

    参考:

    https://www.cnblogs.com/zongfa/p/7709639.html

    https://www.cnblogs.com/chenchao1990/p/5284237.html

    官方文档:

    https://docs.djangoproject.com/en/dev/topics/forms/

    https://docs.djangoproject.com/en/1.11/ref/forms/

     

    继承forms.Form可以实现基于model的django表单

    而继承forms.Form可以实现一般的django表单,

    django表单的功能:

    • 自动生成HTML表单元素
    • 检查表单数据的合法性
    • 如果验证错误,重新显示表单(数据不会重置)
    • 数据类型转换(字符类型的数据转换成相应的Python类型)

     

    表单定义:

    from django import formsclass NameForm(forms.Form):

        your_name = forms.CharField(label='Your name', max_length=100)

    上面这个标签渲染后的效果:

    <label for="your_name">Your name: </label><input id="your_name" type="text" name="your_name" maxlength="100" required>

     

    view中向前端传页面:

    from django.shortcuts import renderfrom django.http import HttpResponseRedirect

    from .forms import NameForm

    def get_name(request):

        # post请求

        if request.method == 'POST':

            form = NameForm(request.POST)

            # 表单验证

            if form.is_valid():

                # 用form.cleaned_data获取经过验证后的表单数据(字典格式)然后进行所需的处理

                # ...

                # redirect to a new URL:

                return HttpResponseRedirect('/thanks/')

     

        # get请求

        else:

            form = NameForm()

     

        return render(request, 'name.html', {'form': form})

     

    前端调用:

    <form action="/your-name/" method="post">

        {% csrf_token %}

        {{ form }}

        <input type="submit" value="Submit"></form>

     

     

     

  • 相关阅读:
    0827IO作业
    0927集合作业
    初学集合,以及泛型
    异常课——抛出
    Python环境变量配置
    安装Python
    MySQL多表操作
    MySQL增删改查
    Group by分组详解
    MySQL常用函数
  • 原文地址:https://www.cnblogs.com/zealousness/p/8757174.html
Copyright © 2011-2022 走看看