zoukankan      html  css  js  c++  java
  • Django之Form组件

    Django中form组件有以下几种功能:

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

    具体用法:

    1.创建form类

    from django.forms import Form
    from django.forms import widgets
    from django.forms import fields
     
    class MyForm(Form):
        user = fields.CharField(
            widget=widgets.TextInput(attrs={'id': 'i1', 'class': 'c1'})
        )
     
        gender = fields.ChoiceField(
            choices=((1, ''), (2, ''),),
            initial=2,
            widget=widgets.RadioSelect
        )
     
        city = fields.CharField(
            initial=2,
            widget=widgets.Select(choices=((1,'上海'),(2,'北京'),))
        )
     
        pwd = fields.CharField(
            widget=widgets.PasswordInput(attrs={'class': 'c1'}, render_value=True)
        )

    2.view函数处理

    from django.shortcuts import render, redirect
    from .forms import MyForm
     
     
    def index(request):
        if request.method == "GET":
            obj = MyForm()
            return render(request, 'index.html', {'form': obj})
        elif request.method == "POST":
            obj = MyForm(request.POST, request.FILES)
            if obj.is_valid():
                values = obj.clean()
                print(values)
            else:
                errors = obj.errors
                print(errors)
            return render(request, 'index.html', {'form': obj})
        else:
            return redirect('http://www.google.com')

    3.生成HTML

    <form action="/" method="POST" enctype="multipart/form-data">
        <p>{{ form.user }} {{ form.user.errors }}</p>
        <p>{{ form.gender }} {{ form.gender.errors }}</p>
        <p>{{ form.city }} {{ form.city.errors }}</p>
        <p>{{ form.pwd }} {{ form.pwd.errors }}</p>
        <input type="submit"/>
    </form>
    <form method="POST" enctype="multipart/form-data">
            {% csrf_token %}
            
                {{ form.xxoo.label }}
                {{ form.xxoo.id_for_label }}
                {{ form.xxoo.label_tag }}
                {{ form.xxoo.errors }}
                <p>{{ form.user }} {{ form.user.errors }}</p>
                <input type="submit" />
        </form>

    二、form类

    创建form类时,会涉及到字段和插件,字段用于对用户请求数据的验证,插件用于自动生成HTML;

  • 相关阅读:
    《现代操作系统》精读与思考笔记 第一章 引论
    笔试面试中常见的位运算用法
    Linux磁盘概念及其管理工具fdisk
    linux选择sdb sdb4 fat32 还是sda分区
    Linux系统 fdisk命令 创建新分区
    Java----------JMX规范
    Java------------JVM(Java虚拟机)优化大全和案例实战
    Java关键字-----------------java中synchronized关键字的用法
    SQL-----------------------之ON和WHERE的区别
    C语言之单元测试
  • 原文地址:https://www.cnblogs.com/moning/p/7831578.html
Copyright © 2011-2022 走看看