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,可以在不删除用户的前提下禁止用户登录。

原文地址:https://www.cnblogs.com/TF511/p/10373065.html

时间: 2024-10-24 04:34:13

form组件+cookie+session总结的相关文章

Python Django 多对多三种创建方式 form组件 cookie和session

一 表中多对多关系三种创建方式 以Book表和Author表多对多关系例 1.第一种方式:全自动(推荐使用):models.ManyToManyField(to='类名') 优点:不需要你手动创建第三张表 缺点:第三张表不是你手动创建的,字段是固定的无法拓展 class Book(models.Model): title = models.CharField(max_length=32) price = models.DecimalField(max_digits=8,decimal_place

Django组件-cookie,session

昨日内容回顾: json 轻量级的数据交换格式 在python 序列化方法:json.dumps() 反序列化方法:json.loads() 在JS中: 序列化方法:JSON.stringfy() 反序列化方法:JSON.parse() ajax $.ajax({ url:"", type:"", data:{}, // 默认contentType="urlencoded" success:function(data){ } }) 一.Djang

Web框架之Django_08 重要组件(form组件、cookie和session组件)

摘要: form组件 cookie组件 session组件 一.form组件 form介绍我们之前在html页面中利用form表单向后端提交数据时候,都需要对用户的输入进行校验,比如校验用户是否输入正确(长度.格式...),如果用户输入的内容有误则需要在相应的位置显示对应的错误信息来提醒用户,提高前端的交互效率.Django form组件就是实现上述功能的一个功能组件.from组件主要功能有:# 生成页面可用的html标签# 对用户条件的数据进行校验# 保留上次输入内容 先来看看自己手写注册功能

Django form组件 与 cookie/session

目录 一.form组件 二.cookie.session 一.form组件 1.1 以注册功能为例 注册功能 1.渲染前端标签获取用户输入 --> 渲染标签 2.获取用户输入传递到后端校验 --> 校验数据 3.校验未通过展示错误信息 --> 展示信息 ps:校验数据:前后端都可以校验,但是前端可以不做,后端必须得做!!! 1.2 校验数据 校验数据 第一步需要一个form类 from django import forms class MyForm(forms.Form): name

django之form组件、cookie、session

django之form组件.cookie.session django form组件 1.渲染标签 2.校验数据 3.展示信息 校验数据 # 第一步需要一个form类 from django import forms class MyForm(forms.Form): name = forms.CharField(max_length=8) password = forms.CharField(max_length=8,min_length=3) email = forms.EmailField

五十一、form组件,钩子函数,cookie,session,

django form 组件 注册功能 1.渲染前端标签获取用户输入 >>>>>> 渲染标签 2.获取用户输入船体到后端校验 >>>>>> 校验数据 3.校验未通过展示错误信息 >>>>>>>> 展示信息 校验数据(前后端都可以) 校验前端后端都可以做,但是前端可以不做,后端必须做 django form组件的三大功能 1.渲染标签 2.校验数据 3.展示信息 校验数据: 第一步:写一个

多对多三种创建方式 forms组件 cookie与session

1.全自动(推荐使用*)            优势:不需要你手动创建第三张表            不足:由于第三张表不是你手动创建的,也就意味着第三张表字段是固定的无法做扩展 class Book(models.Model): title = models.CharField(max_length=32) price = models.DecimalField(max_digits=8,decimal_places=2) authors = models.ManyToManyField(to

多对多三种创建方式,forms组件,cookie和session

多对多三种创建方式 1.全自动 优点:不需要自己手动创建第三章表缺点:由于第三张表不是自己创建的,也就是说第三张表字段是固定的没有办法做扩展 class Book(models.Model): title = models.CharField(max_length=32) price = models.DecimalField(max_digits=8,decimal_places=2) authors = models.ManyToManyField(to='Author') class Au

Django组件——cookie与session

Django组件--cookie与session 一.会话跟踪技术 1.什么是会话跟踪技术 先了解一下什么是会话.可以把会话理解为客户端与服务器之间的一次会晤,在一次会晤中可能会包含多次请求和响应.例如你给10086打电话,你就是客户端,而10086服务人员就是服务器,从双方接通电话那一刻起,会话就开始了,到某一方挂断电话就表示会话结束.在通话过程中,你会向10086发出多个请求,这多个请求都在一个会话中. 在JavaWeb在,客户向某一服务器发出第一个请求开始,会话就开始了,直到客户关闭了浏览