zoukankan      html  css  js  c++  java
  • Django实现注册/登录:方法1

    以下是第一种方法

     1 # 注册
     2 def userreg(request):
     3     # 判断是否POST方式,如果是则进行下面的表单处理
     4     if request.method == 'POST':
     5         userDict = request.POST.dict()  # 吧用户输入的信息转成字典形式,并用userDict接收
     6         try:
     7             del userDict['csrfmiddlewaretoken']
     8             # 格式化时间
     9             myDate = datetime.now()
    10             formatedDate = myDate.strftime("%Y-%m-%d %H:%M:%S")
    11             # 第一步,保存新用户信息到数据库
    12             row = Users.objects.create(createtime=formatedDate, **userDict)  
    13             # Users.objects.create(email=email, pwd=pwd, nicheng=nicheng)  # 创建一个对象实例
    14             userDict['id'] = row.id
    15             # 第二步,如果验证通过,则保存用户信息到 session, 实现用户登陆
    16             # userDict = {'uaid': row.id, 'email': rouserDictw.email, 'pwd': userDict.pwd,'role':1}
    17             request.session['dict'] = userDict  # 设置session
    18             return render(request, 'home.html') # 注意这里,这里是返回home页面,在实现登录注册的另一个方法里使用的是重定向
    19         #验证是否重复
    20         except Exception as err:
    21             errStr = err.args[1]
    22             if 'emailuniq' in errStr:
    23                 return HttpResponse('<script>alert("用户名重复");location.href="/";</script>')
    24             elif 'nichenguniq' in errStr:
    25                 return HttpResponse('<script>alert("昵称重复");location.href="/";</script>')
    26     else:
    27         return render(request, 'home.html')
    28 
    29 
    30 # 登录
    31 def userlogin(request):
    32     emailVal = request.POST.get('email')
    33     pwd = request.POST.get('pwd')
    34 
    35         #方法1,直接查询数据方式   这里采用方法2
    36         #cursor = connection.cursor()
    37         # userSql = "SELECT * FROM users WHERE `email`=%s AND pwd=%s"
    38         # cursor.execute(userSql, [emailVal, pwd])
    39         # row = cursor.fetchone()
    40         
    41         #方法2,model对象查询
    42         row = Users.objects.filter(email=emailVal, pwd=pwd).first()
    43         if row == None:  # 如果不匹配
    44             return HttpResponse('<script>alert("用户名或密码出错");location.href="/";</script>')
    45         else:
    46             # 第二步,如果验证通过,则保存用户信息到 session, 用户登陆
    47                     loginbean = {}
    48                     loginbean['id'] = row.id
    49                     loginbean['nicheng'] = row.nicheng
    50                     loginbean['role'] = row.role
    51                     request.session['loginbean'] = loginbean  # 设置session
    52             return render(request, 'home.html')
    53     else:
    54         return HttpResponse('<script>alert("用户名已过期请重新登录");location.href="/";</script>')
    55         return render(request, 'home.html')
  • 相关阅读:
    jQuery 入门 -- 事件 事件绑定与事件委托
    原生js实现视差风格音乐播放器
    jQuery 入门
    一些开放的免费接口【已失效】
    php mysqli操作数据库
    DOM 相关
    面向对象
    对象
    博客园添加鼠标点击特效
    正则表达式
  • 原文地址:https://www.cnblogs.com/darkmoon/p/7993600.html
Copyright © 2011-2022 走看看