• Form 书写方式 验证用户请求 生成html标签 主机管理系统


    Form

    用途

    1. 验证用户请求
    2. 生成html标签
      • 保留上一次提交的数据

    书写方式

    1. 写类
    2. 在类中写字段(校验)
    3. 在类中写插件(生成HTML),html上写模板语言
    4. 在函数中,配置初始化操作

    验证用户请求

    views.py

    from django import forms
    # 字段本身仅能验证
    from django.forms import fields
    # 定制插件、定制样式
    from django.forms import widgets
    
    
    class FM(forms.Form):
        user = fields.CharField(
            error_messages={'required': '用户名不能为空.'},
            widget=widgets.Textarea(attrs={'class': 'c1'}),
            label='用户名',
            initial='root'
        )
        pwd = fields.CharField(
            max_length=12,
            min_length=6,
            error_messages={'required': '密码不能为空.', 'min_length': '密码长度不能小于6',
                            "max_length": '密码长度不能大于12'},
            widget=widgets.PasswordInput
        )
        email = fields.EmailField(
            error_messages={'required': '邮箱不能为空.', 'invalid': "邮箱格式错误"})
    
        f = fields.FileField()
    
        p = fields.FilePathField(path='app01')
    
        city1 = fields.ChoiceField(
            choices=[(0, '上海'), (1, '广州'), (2, '东莞')]
        )
        city2 = fields.MultipleChoiceField(
            choices=[(0, '上海'), (1, '广州'), (2, '东莞')]
        )
    
    
    def fm(request):
        if request.method == 'GET':
            # 从数据库中获取数据到字典
            dic = {
                "user": 'r1',
                'pwd': '123123',
                'email': 'sdfsd',
                'city1': 1,
                'city2': [1,2]
            }
            # 初始化操作
            obj = FM(initial=dic)
            return render(request, 'fm.html', {'obj': obj})
        elif request.method == 'POST':
            obj = FM(request.POST)
            if obj.is_valid():		判断信息是否正确,正确为True,否则为Flase		
                # 认证通过后的操作
                models.UserInf.objects.create(**obj.cleaned_data) 正确信息,字典形式
            else:
                # 错误信息的几种显示形式
                print(obj.errors)				错误信息,继承ErrorDict
                print(obj.errors.as_json())		json字典形式
                print(obj.errors['user'])		通过字典方式获取
                print(obj.errors['user'][0])	获取第一个错误信息
                return render(request, 'fm.html', {'obj': obj})
            return redirect('/fm/')
    

    ulrs.py

    url(r'^fm/', views.fm),
    

    fm.html

    <form method="post" action="/fm/">
        {% csrf_token %}
        <p>{{ obj.user.label }}{{ obj.user }}{{ obj.errors.user.0 }}</p>
        <p>{{ obj.pwd }}{{ obj.errors.pwd.0 }}</p>
        <p>{{ obj.email }}{{ obj.errors.email.0 }}</p>
        <p>{{ obj.f }}{{ obj.errors.f.0 }}</p>
        {{ obj.p }}
        {{ obj.city1 }}
        {{ obj.city2 }}
        <input type="submit" value="提交"/>
    </form>	
    
    <form method="post" action="/fm/">
        {% csrf_token %}
        <p><input type="text" name="user" placeholder="用户名">{{ obj.errors.user.0 }}</p>
        <p><input type="text" name="pwd" placeholder="密码">{{ obj.errors.pwd.0 }}</p>
        <p><input type="text" name="email" placeholder="邮箱">{{ obj.errors.email.0 }}</p>
        <input type="submit" value="提交"/>
    </form>
    

    生成html标签

    可定制高,推荐
    	<form method="post" action="/fm/">
            {% csrf_token %}
            <p>{{ obj.user }}{{ obj.errors.user.0 }}</p>
            <p>{{ obj.pwd }}{{ obj.errors.pwd.0 }}</p>
            <p>{{ obj.email }}{{ obj.errors.email.0 }}</p>
            <input type="submit" value="提交"/>
        </form>
    
    自动生成,可定制性差
    	<form method="post" action="/fm/">
            {% csrf_token %}
            {{ obj.as_ul }}
            <input type="submit" value="提交"/>
        </form>
    
    	<form method="post" action="/fm/">
            {% csrf_token %}
            {{ obj.as_p }}
            <input type="submit" value="提交"/>
        </form>
    
    	<form method="post" action="/fm/">
            {% csrf_token %}
            <table>
                {{ obj.as_table }}
            </table>
            <input type="submit" value="提交"/>
        </form>
    
  • 相关阅读:
    手机屏幕边缘发黄(抢救处理)
    Error parsing HTTP request header 错误解决方法
    SpringBoot项目部署到外部Tomcat重复启动的解决方法
    手机文件管理中网络邻居的使用方法
    解决Tomcat启动过程中报错org.springframework.jmx.export.UnableToRegisterMBeanException
    SpringBoot打成war包后Tomcat无法访问静态资源问题
    Springboot如何使用外部tomcat容器
    Maven打包并入本地jar包
    Excel小技巧之VLOOKUP()使用简单说明
    java.io.IOException: Server returned HTTP response code: 403 for URL
  • 原文地址:https://www.cnblogs.com/todayisafineday/p/8783734.html
Copyright © 2020-2023  润新知