zoukankan      html  css  js  c++  java
  • day 65 auth模块、功能可插拔式设计思想、bbs表设计

    auth模块
    用auth模块,就用全套,不要自己写一部分,用别人一部分

    #创建超级用户用于登录django admin的后台管理

    createsuperuser

    #校验用户是否存在
    user_obj = auth.authenticate(username=username,password=password) # 返回的是数据对象 没有返回None

    #保存用户登录状态
    auth.login(request,user_obj) # 执行完这一句之后 只要是能够拿到request的地方,都可以通过request.user获取到当前登录用户对象

    #判断当前用户是否登录
    request.user.is_authenticated()

    #获取当前用户数据对象
    request.user

    #给视图函数加上校验用户是否登录的校验
    from django.contrib.auth.decorators import login_required
    # @login_required(login_url='/xxx/') # 局部配置
    @login_required # 全局配置
    def home(request):
      return HttpResponse('home页面')


    # 当用户没有登录的情况下 跳转的url有两种配置方式
    1.在装饰器括号内通过login_url参数局部指定
    2.全局配置 用户没有登录的情况下 所有的视图统一跳转到一个url
    配置文件中
    LOGIN_URL = '/login/'

    #修改密码
    校验原密码是否正确
    is_right = request.user.check_password(old_password)
    设置新密码
    request.user.set_password(new_password)
    request.user.save()


    #用户注册
    from django.contrib.auth.models import User
    User.objects.create(username=username,password=password) # 不用使用create 密码会直接存成明文
    User.objects.create_user(username=username,password=password) # 创建普通用户
    User.objects.create_superuser(username=username,password=password,email='123@qq.com') # 创建超级用户 邮箱字段必须填写



    #扩展auth_user表的字段
    第一种(不好用)
    利用一对一表关系 扩展字段

    第二种(继承)
    1.自己写一个默写类 继承原来的auth_user类 然后在settings配置文件中 告诉django使用你新建的类来替代auth_user表
    from django.db import models
    from django.contrib.auth.models import AbstractUser
    # Create your models here.

    class Userinfo(AbstractUser):
    注意:继承了AbstractUser之后 你自定义的表中,字段不能跟原有的冲突
      phone = models.BigIntegerField()
      avatar = models.FileField()
      register_time = models.DateField(auto_now_add=True)


    2.一定要在settings配置文件中指定
    AUTH_USER_MODEL = 'app01.Userinfo'
    # 固定语法: AUTH_USER_MODEL = '应用名.表名'

    通过上面的方式 继承的表 还可以继续使用auth模块所有的功能
    温馨提示:当你需要些用户相关的功能的时候可以考虑使用auth模块

    参看django 中间件配置 实现功能的插拔式设计 (*******)

    通过字符串,将模块和类导入,这样只要注释掉了字符串,就可以禁止模块和类的导入,

    字符串写在settings里。

    BBS表设计
    #项目开发的流程
    1.需求分析
    架构师+产品经理+开发组组长
    在去客户公司谈需求之前,先事先估摸着这个项目应该怎么做
    里面有哪些坑的点 提前想好比较简单的解决方案
    在跟客户谈的时候 有意识的引导客户朝着你已经想好的方案上去提需求


    2.项目设计
    架构师干的活
    项目的报价(每个程序员按照人头 每天2000+左右)
    语言的选择
    框架的选择
    数据库的选择(主库用什么 缓存库)
    功能划分
    开发部开发组长开会分发任务

    3.分组开发
    架构师和开发组长将项目整体的框架搭建出来
    然后让小组成员各自朝着各个部分填写代码即可

    4.测试
    1.自己写测试脚本

    2.测试部分专门测试

    5.交付上线
    交给你们公司的运维人员或者是客户公司的运维人员


    #表

  • 相关阅读:
    【SAS NOTE】OUTPUT
    【SAS NOTES】_NULL_
    【SAS NOTE】sas 9.2 安装
    【SAS NOTE】FREQ
    纯数学教程 Page 203 例XLI (1)
    纯数学教程 Page 203 例XLI (3)
    纯数学教程 Page 203 例XLI (2)
    Prove Cauchy's inequality by induction
    纯数学教程 Page 325 例LXVIII (15) 调和级数发散
    纯数学教程 Page 325 例LXVIII (15) 调和级数发散
  • 原文地址:https://www.cnblogs.com/wwei4332/p/11772174.html
Copyright © 2011-2022 走看看