• Pyhton学习——Day58


    From表单验证

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <form id="fm" action="/f1.html" method="POST">
             <p>{{ obj.user }}{{ obj.errors.user.0 }}</p>
             <p>{{ obj.pwd }}{{ obj.errors.pwd.0 }}</p>
             <p>{{ obj.age }}{{ obj.errors.age.0 }}</p>
             <p>{{ obj.email }}{{ obj.errors.email.0 }}</p>
             <p><input type="submit" value="提交"/></p>
             <p><input type="button" value="Ajax提交" onclick="submitAjaxForm();"/></p>
        </form>
        <script src="/static/jquery-3.1.1.js"></script>
        <script>
            function submitAjaxForm() {
                $.ajax({
                    url:'/f1.html',
                    type:'POST',
                    data:$('#fm').serialize(),
                    success:function (arg) {
                        console.log(arg);
                    }
    
                })
            }
        </script>
    </body>
    </html>
    HTML看我
    
    
    from django.shortcuts import render,HttpResponse,redirect
    from django import forms
    from django.forms import fields
    # Create your views here.
    class F1Form(forms.Form):
        user = fields.CharField(max_length=18,
                                min_length=6,
                                required=True,
                                error_messages={
                                    'required':'用户名不能为空',
                                })
        pwd = fields.CharField(min_length=32, required=True)
        age = fields.IntegerField(
            required=True,
            error_messages={
                'invalid':'必须为数字格式',
                'required':'年龄不能为空'
            }
        )
        email = fields.EmailField(
            required=True,
            error_messages={
                'invalid':'必须为邮件格式,带@的那种',
                'required': '邮箱不能为空'
            }
        )
    
    
    
    
    def f1(request):
        if request.method =='GET':
            obj = F1Form()
            return render(request,'f1.html',{'obj':obj})
        else:
            # u = request.POST.get('user') #不能为空,长度6-18
            # p = request.POST.get('pwd')  #不能为空
            # e = request.POST.get('email') #邮箱格式
            # a = request.POST.get('age') #不能为空,必须为数字类型
            #
            # #1.检查是否为空
            # #2.检查格式是否正确
            # print(u,p,e,a)
            obj = F1Form(request.POST)
            #是否验证成功
            if obj.is_valid():
                #已经验证过的数据
                print('验证成功',obj.cleaned_data)
                return redirect('http://www.baidu.com')
            else:
                print('验证失败',obj.errors)
            return render(request,'f1.html',{'obj':obj})
    Views看我
    """day58 URL Configuration
    
    The `urlpatterns` list routes URLs to views. For more information please see:
        https://docs.djangoproject.com/en/2.0/topics/http/urls/
    Examples:
    Function views
        1. Add an import:  from my_app import views
        2. Add a URL to urlpatterns:  path('', views.home, name='home')
    Class-based views
        1. Add an import:  from other_app.views import Home
        2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
    Including another URLconf
        1. Import the include() function: from django.urls import include, path
        2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
    """
    from django.contrib import admin
    from django.urls import path
    from django.conf.urls import url
    from app01 import views
    from app02 import views as v2
    urlpatterns = [
        path('admin/', admin.site.urls),
        url(r'^index.html$',views.index),
        url(r'^index1.html$', views.index1),
        url(r'^f1.html$', v2.f1),
    ]
    Win a contest, win a challenge
  • 相关阅读:
    实例讲解虚拟机3种网络模式(桥接、nat、Host-only)
    期刊搜索问题——SCI、EI、IEEE和中文期刊
    面向对象分析与设计(C++)课堂笔记
    windows与VMware ubuntu虚拟机实现文件共享
    GDI+在绘制验证码中的使用
    【转】.net中快捷键的使用
    MD5加密“破解”在.NET平台实现最基本的理解
    UE4 Persona 骨架网格物体动画
    从零开始做3D地图编辑器 基于QT与OGRE
    TBB(Intel Threading Building Blocks)学习笔记
  • 原文地址:https://www.cnblogs.com/pandaboy1123/p/8899566.html
Copyright © 2020-2023  润新知