Django jason day15(73)

每日测验

"""
今日日考
1.img标签src属性可以指代的值有哪些,各有什么特点
2.pillow模块是干什么用的,主要的方法有哪些
3.简述登陆功能图片验证码相关逻辑
4.纯手撸能够生成五位数的随机验证码代码
"""

昨日内容回顾

  • 模型表的创建

    """
    1.用户表需要继承AbstractUser
    2.自关联字段
    	eg:根评论和子评论
    3.数据库设计字段优化
    """
    
  • 注册功能

    """
    1.书写了一个注册需要的forms组件
    	规律:不同的功能代码应该接耦合单独存储
    		1.只有一个forms组件,那么可以直接创建一个py文件
    		2.有多个forms组件,你可以创建文件夹,内部根据功能的不同创建不同的py文件
    
    2.利用forms组件渲染前端标签
    	1.我们不利用form表单提交而是用ajax提交
    	2.但是我们需要用到form标签来包含我们所有的获取用户数据的html代码
    		$('#form').serializeArray()
    			获取到form标签内所有用户普通键值对的数据
    				[{},{},{},{}]
    3.手动渲染获取用户头像的标签
    	<label for="myfile">头像
        {% load static %}
        <img src="{% static 'img/default.png' %}" id='myimg' alt="" width="100" style="margin-left: 10px">
      </label>
      <input type="file" id="myfile" name="avatar" style="display: none" >
       只要是label里面的内容点击都会跳转到for指定的标签上
    
    4.如何实时展示用户头像
    	1.利用到了文件阅读器
    	2.change事件
    	3.onload等待加载完毕
    
    5.一旦用户信息不合法如何精确的渲染提示信息
    	1.forms组件渲染的标签id值都有一个固定的特点
    		id_字段名
    		ps:如何获取id值呢	form.auto_id
    			<label for="{
         { form.auto_id }}">{
         { form.label }}</label>
    	2.根据后端返回的字段以及字段对应的报错信息
    		自己手动拼接对应字段的id值
    	3.提示功能的完善
    		1.jQuery的链式操作
    		2.input获取焦点事件
    """
    
  • 登陆功能

    """
    1.自己手动搭建获取用户用户名 密码 验证码前端标签代码
    
    2.图片验证码如何自己完成
    	ps:
    		img标签src属性后面可以写的内容
    			1.直接写网络图片地址
    			2.仅仅只是一个url后缀(自动朝该url发送get请求获取数据)
    			3.图片二进制数据
    	
    	1.需要借助于pillow模块
    		Image,ImageDraw,ImageFont
    	2.需要借助于内存管理器io模块
    		BytesIo,StringIO
    	3.字体样式其实是受.ttf结尾的文件控制的
    	4.手动产生随机验证码(搜狗公司的笔试题)
    		random模块
    		chr内置方法
    		在session中保存验证码
    """
    

今日内容概要

  • 登陆功能
  • bbs首页搭建
    • 导航条用户功能
  • admin后台管理
  • 首页文章展示
  • 用户头像展示(media配置)
  • 图片防盗链
  • 个人站点页面搭建
  • 侧边栏展示功能
    • 标签
    • 分类
    • 日期
  • 侧边栏筛选功能
  • 将侧边栏制作成inclusion_tag

登陆功能

def login(request):
    if request.method == 'POST':
        back_dic = {
   'code':1000,'msg':''}
        username = request.POST.get('username')
        password = request.POST.get('password')
        code = request.POST.get('code')
        # 1 先校验验证码是否正确      自己决定是否忽略            统一转大写或者小写再比较
        if request.session.get('code').upper() == code.upper():
            # 2 校验用户名和密码是否正确
            user_obj = auth.authenticate(request,username=username,password=password)
            if user_obj:
                # 保存用户状态
                auth.login(request,user_obj)
                back_dic['url'] = '/home/'
            else:
                back_dic['code'] = 2000
                back_dic['msg'] = '用户名或密码错误'
        else:
            back_dic['code'] = 3000
            back_dic['msg'] = 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值