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,可以在不删除用户的前提下禁止用户登录。
  • 相关阅读:
    随机森林算法参数调优
    BAYES和朴素BAYES
    阿里云 金融接口 token PHP
    PHP mysql 按时间分组 表格table 跨度 rowspan
    MySql按周,按月,按日分组统计数据
    PHP 获取今日、昨日、本周、上周、本月的等等常用的起始时间戳和结束时间戳的时间处理类
    thinkphp5 tp5 会话控制 session 登录 退出 检查检验登录 判断是否应该跳转到上次url
    微信 模板消息
    php 腾讯 地图 api 计算 坐标 两点 距离 微信 网页 WebService API
    php添加http头禁止浏览器缓存
  • 原文地址:https://www.cnblogs.com/TF511/p/10373065.html
Copyright © 2011-2022 走看看