• Django之Form功能


    一 什么是Form?什么是DjangoForm?

    Django表单系统中,所有的表单类都作为django.forms.Form的子类创建,包括ModelForm

    关于django的表单系统,主要分两种

    基于django.forms.Form:所有表单类的父类

    基于django.forms.ModelForm:可以和模型类绑定的Form

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

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

    示例代码:

    views.py

    from django.forms import Form
    from django.forms import fields
    class LoginForm(Form):
        # 正则验证: 不能为空,6-18
        username = fields.CharField(
            max_length=18,
            min_length=6,
            required=True,
            error_messages={
                'required': '用户名不能为空',
                'min_length': '太短了',
                'max_length': '太长了',
            }
        )
        # 正则验证: 不能为空,16+
        password = fields.CharField(min_length=4,required=True)
        # email = fields.EmailField()
        # email = fields.GenericIPAddressField()
        # email = fields.IntegerField()
    
    
    def login(request):
        if request.method == "GET":
            return render(request,'login.html')
        else:
           obj = LoginForm(request.POST)
           if obj.is_valid():
               # 用户输入格式正确
               print(obj.cleaned_data) # 字典类型
               return redirect('http://www.baidu.com')
           else:
               # 用户输入格式错误
               return render(request,'login.html',{'obj':obj})
    urls.py
    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),
        #url(r'^test/',views.test),
    ]

    login.html

     <form method="POST" action="/login/">
            {% csrf_token %}
            <p>
                用户:<input type="text" name="username"/>{{ obj.errors.username.0 }}
            </p>
            <p>
                密码:<input type="password" name="password"/>{{ obj.errors.password.0 }}
            </p>
            <input type="submit" value="提交" />{{ msg }}
        </form>
  • 相关阅读:
    while for循环
    Python模块
    python内置函数
    【简介】《GM/T 0034-2014 基于SM2密码算法的证书认证系统密码及其相关安全技术规范》
    Markdown的Diagrams
    密码设备管理-对称密钥管理
    TortoiseSVN的简单使用
    Android Studio安装后的设置
    Android Studio升级后,新建Activity后setContentView(R.layout.activity_layout_main);中R变红
    简介Floyd算法
  • 原文地址:https://www.cnblogs.com/pyyu/p/7475074.html
Copyright © 2020-2023  润新知