zoukankan      html  css  js  c++  java
  • form组件+cookie+session总结

    1、forms 组件
        
        -数据校验功能
        1、定义
            -新建一个py文件
            -导入from django import forms
            -写一个类继承 forms.Form
            -把你需要校验的(字段的条件)属性写到类里面
                -比如:name = forms.CharField(max_length=8,min_length=3,label="用户名",
                             error_messages={"max_length":"超出范围",
                             "min_length":"太短了","required":"该项不能为空"},)
            
            -局部钩子函数
                -def clean_name(self):
                    -name=self.cleaned_data.get("name")
                    if name.startswith("sb")
                        -raise ValidationError("不能以sb开头")
                    else:
                        #切记,如果正确,一定要返回name
                        return name
                        
            -全局钩子函数
                -使用ValidationError需导入
                -from django.core.exceptions import ValidationError
    
                -def clean(self):
                    -pwd = self.cleaned_data.get("pwd")
                    -re_pwd = self.cleaned_data.get("re_pwd")
                    -if pwd ==re_pwd:
                        -# 正确,返回cleaned_data
                        -return None
                    -else:
                        #校验不通过:raise ValidationError('两次密码不一致'),错误放到__all__
                        -return ValidationError("两次密码不一致")
        2 views中使用:
                def test(request):
                    if request.method=='GET':
                        regform=RegForm()
                    else:
                        regform=RegForm(request.POST)
                        if regform.is_valid():
                            #一般情况需要存数据库了
                            pass
                        else:
                            error_all=regform.errors.get('__all__')
                            # error_all=regform.errors['__all__']
                    return render(request,'register.html',locals())
        3 模板中使用
                <form action="">
    
                {% for foo in regform %}
                    {{ foo.label }}:{{ foo }} <span>{{ foo.errors.0 }}</span>
                {% endfor %}
                <input type="submit"> <span>{{ error_all }}</span>
    
                </form>    
    
    2、cookie和session
        -1、cookie:由服务器产生,存放在客户端浏览器上的键值对
        -2、django中使用:
            -设置值:
                obj = HttpResponse(“ok”)
                obj.set.cookie("key","value")
                return obj
            -取值:
                request.COOKIES.get("key")
                request.COOKIES["key"]
            -删除值:
                obj = HttpResponse(“ok”)
                obj.datele_cookie("key")
        
        
        -3、session:保存在服务器上的键值对
            -设置值:
                -request.session["key"]="value"
                    干了的事:
                        1、生成一个随机字符串:dasfjdfks
                        2、在django——session表中存入dasfjdfks {"key":"value"} 超市时间
                        3、把sessionid:dasfjdfks写入到cookie
            -取值:
                -request.session.get("key")
            -删除值:
                -request.session.flush():全删除
                -request.session.detele():只删除数据库
                
            -其他配置参数:
                -了解
    
    3、Auth模块
        1、Django自带的用户认证模块,可以快速实现都登录,注销,修改密码....
        
        #from django.contrib.auth.models import AbstractUser
        2、扩展auth表,需要继AbstractUser
        3、一定不要忘记在setting中配置:AUTH_USER_MODEL = "app01.UserInfo"
            -# 指定以后再作用户认证,都用这个表
            
        4、它提供的功能:
            -from django.contrib.auth import authenticate,login,logout
            -用户认证:authenticate(username=lqz,password=123)
            -用户一旦认证通过,调用login(request,user),以后从reuqest.user 中就能取出当前登录人对象
            -退出:logout(request),request.user就是匿名用户
            -校验是否通过认证(是否登录):request.user.is_authenticated()
            -创建普通用户
                -models.UserInfo.objects.create_user(username=lqz)
            -创建超级用户
                -models.UserInfo.objects.create_superuser(username=lqz)
            -修改密码
                -用user对象.set_password(新密码)
                -一定要记住sava
            -校验密码
                -check_password(password)
            -登录认证装饰器
                # @login_required(login_url='/login/')
                -login_required(login_uel="/login/")
            is_staff: 用户是否拥有网站管理权限:create_superuser:  is_staff 是 1
            id_active:  是否允许用户登录,设置为False,可以在不删除用户的前提下禁止用户登录。
  • 相关阅读:
    数据结构与算法题目集(中文)6-12 二叉搜索树的操作集 (30分)
    性能测试案例
    jmeter 常用监听器
    性能测试面试题
    jmeter 之 dubbo
    jmeter5 分布式测试,未成功
    jmeter之OPMS项目管理参数化与断言实战;
    jmeter时间戳处理相关
    jmeter控制器下遍历一组参数
    The Wall (medium)
  • 原文地址:https://www.cnblogs.com/TF511/p/10373065.html
Copyright © 2011-2022 走看看