• 一个登陆网站验证身份的简单例子


    按照需求设计
    1. 登陆注册
    2. 人员属于不同的班级
    3. 学生操作
    4. 班级操作
    5. 老师操作
    6. 增删改查
    开发
    1. 定义数据库表结构
    2. 登陆注册
    class Classes(models.Model):
        caption = models.CharField(max_length = 32)
    
    class Student(models.Model):
        name = models.CharField(max_length = 32)
    	cls = models.Foreignkey('Classes')
    
    class Teacher(models.Model):
        name = models.CharField(max_length = 32)
    	username= models.CharField(max_length = 32)
    	password = models.CharField(max_length = 32)	
    	cls = models.ManyToMany('Classes')
    	
    

    登陆成功之后需要保持状态,记录登陆状态
    如何获取这个呢?需要通过cookies session等

    下面讲述一个简单的案例:
    一个可以登陆,显示用户登陆后信息的状态的简单页面

    我们先来设计表结构
    有几种用户身份: 学生 老师 管理员
    学生属于班级 老师也属于班级
    一个班级有多个学生
    一个班级有多个老师 一个老师可以任教多个班级

    由此可以看到 班级和学生之间是一对多的关系
    老师和班级之间是多对多的关系
    因此,对应到Django的models的设计来看,班级和学生之间是外键关系
    老师和班级之间是ManyToMany关系
    据此设计吧表结构如下:

    class classes(models.Model):
       	 caption = models.CharField(max_length = 32)
    
    class Student(models.Model):
        name = models.CharField(max_length = 32)
    	cls = models.Foreignkey('Classes')
    
    class Teacher(models.Model):
       name = models.CharField(max_length = 32)
       username = models.CharField(max_length = 32)
       password = models.CharField(max_length = 32)
       cls = models.ManyToMany('Classes')
       
    

    表结构设计好之后,就来编写 views了
    逻辑要实现:
    用户登陆,root+root(用户名家和密码) 则判断用户登陆成功,跳转登陆成功之后的页面
    用户登陆失败,则提示用户登陆失败,重新登陆

    我们先用CBV的方法编写

    
    from django.shortcut import render
    from django.shortcut import redirect
    
    def login(request):
          msg = ""
          if request.method == "POST":
    	        print request.method
    			username = request.POST.get("username")
    			password = request.POST.get("password")
    			
    			if username == "root" and password == "root":
    			     return redirect('/index.html')
    		    else:
    			    msg = "请输入正确的用户名和密码"
    				return render(request, 'login.html', {'msg': msg})
    				
    	   return render(request, 'login.html', {'msg': msg})
    			
    			
    def index(request):
         msg = ""
         username = request.get_cookie("username"):
    	 if username:
    	      return render(request, 'index.html', {'username': username})
    	else:
    	     return render(request, 'login.html')
    
  • 相关阅读:
    九度OJ 1035:找出直系亲属 (二叉树、递归)
    九度OJ 1034:寻找大富翁 (排序)
    九度OJ 1033:继续xxx定律 (基础题)
    九度OJ 1032:ZOJ (基础题)
    centos 6.4 安装mongodb
    数据校验工具类
    《 mongodb 学习 》java 基本操作
    《 mongodb 学习 》基本操作2
    《 mongodb 学习 》之基本操作
    《 mongodb 学习 》之安装篇
  • 原文地址:https://www.cnblogs.com/haozike/p/8457075.html
Copyright © 2020-2023  润新知