上一篇写了一个静态的登录验证。

实景情况网页的登录验证都是动态验证的,过程其实是从后端拿到储存的账户与密码来和前端的输入信息进行匹配校验的。

一、把项目拆分,来一个单独登录的包,放在Django项目下

python manage.py startapp app01

此时重新打开下项目

多出来一个app01的文件夹

二、此时刚创建的app01Django并不知道,需要手动修改配置文件来告诉Django

三、登录过程从主项目切换到app01包中的过程

四、调用数据库的方法

优化上一篇的内容。此时后端sql的调用会用到一个比较简单常用的方法那就是  ORM(Object Relationship Model)

Django中ORM的使用

1、用处

  操作数据表

  操作数据行

2、ORM ===>帮你翻译SQL语句的

  优点     1开发效率高         2开发不用直接写SQL语句

  缺点    1.执行效率差

3、对应关系是:

  类 <--> 数据表
  属性 <--> 字段
  对象 <--> 数据行

五、Django中ORM的使用

1.先创建好一个数据库可以先用cmd去创建,登录数据库==》创建数据库

cmd==》create database db6;  

2. 告诉Django连哪个数据库

在setting.py中修改默认的数据库连接

3.用什么连接数据库

  利用第三方的包,比如第三方包:pymysql和MySQLdb
  告诉Django用pymysql模块代替默认的MySQLdb去连接MySQL数据库
  和settings.py同级的__init__.py文件,写上:
  import pymysql
  pymysql.install_as_MySQLdb()

 4. 在app/models.py的文件中创建类

  类必须继承models.Model

  

5.两个命令

  1. python manage.py makemigrations --> 找个小本本把models.py的变更记录一下

    

    就是记录 models.py文件的变更记录下来

      

  2. python manage.py migrate --> 把上面的变更记录翻译成SQL语句,去数据库执行

    

    就是把刚才记录下来的内容转换成SQL语句执行

    

    找到自己创建的表单 app01_user  查看结构disc app01_user;   确认是否自己创建的表结构

    

######

 六、打开pycharm中SQL可视化工具

  

  1.弹窗后下载对应SQL的驱动

  2.弹窗可输入SQL语句了

   3.找到指定表单user

   4.添加SQL内容

SQL表单中添加好账户密码信息后,再去处理逻辑

七、总算所有的铺垫做完毕了,现在进行app01登录的逻辑修改

  通过ORM 查询 user.object.filter(email=email,pwd=pwd)

  此时修改app01下边的views.py文件

.模块倒入  
from app01.models import User .判断数据库和前端form表单校验
ret =User.objects.filter(email=email,pwd=pwd)
if ret:
  return redirect('https://www.baidu.com')
修改完成后即:
from django.shortcuts import HttpResponse  #返回一个指定的字符串时
from django.shortcuts import render #返回一个HTML文件
from django.shortcuts import redirect #跳转到其他网页
from app01.models import User def login(request):
error_msg = '' #定一个变量为空 login.html 中加入一个空的p标签内容为这个变量
if request.method == 'POST': # form表单的模式是POST请求,如果提交就走这个流程
email = request.POST.get('email')
pwd = request.POST.get('pwd')
# print(email, pwd)
# if email=='1@1.com' and pwd =='123': #假设账户和密码是正确的,需要跳转到主页上去(假如说百度)
ret =User.objects.filter(email=email,pwd=pwd)
if ret:
return redirect('https://www.baidu.com')
else:
error_msg='邮箱或密码错误' #等账户或者密码错误是给这个变量赋值
return render(request,'login.html',{'error_msg':error_msg}) # 第一次链接url输入网址是get请求 #并且输出这个变量

再去测试结果,登录的app01 完成

最新文章

  1. 云计算三种服务模式SaaS、PaaS和IaaS及其之间关系(顺带CaaS、MaaS)
  2. 转:socket编程在windows和linux下的区别
  3. SQL Server高级内容之表表达式和复习
  4. Cocos2d-x 3.0 实例学习教程 前沿
  5. Maven Build Life Cycle--reference
  6. JMeter数据库性能测试
  7. Javascript 【JSON对象】
  8. 《Python编程从入门到实践》_第四章_操作列表
  9. 学习笔记TF035:实现基于LSTM语言模型
  10. JVM基础系列第10讲:垃圾回收的几种类型
  11. jq点击事件不生效,效果只闪现一次又立马消失的原因?
  12. Spark Distributed matrix 分布式矩阵
  13. [01] JSP的基本认识
  14. Subversion版本控制系统的安装和操作.
  15. Linux下MySQL安装与操作
  16. CentOS7下解决ifconfig command not found
  17. Gunicorn独角兽
  18. 依据分辨率区分手机、平板、pc
  19. oracle表名、字段名大小写问题。
  20. JRE,JVM,JDK

热门文章

  1. 【sqli-labs】Less1~Less4
  2. java String正则表达式
  3. CPU虚拟化
  4. vue-cli watch简单用法
  5. 回到未来123Back To The Future
  6. 20165323 实验二 Java面向对象程序设计
  7. SSD垃圾回收
  8. 前后台交互经常使用的技术汇总(后台:Java技术,前台:Js或者Jquery)
  9. 前端面试题集锦及答案解析--HTML、 HTTP、web综合问题
  10. Spring data JPA中使用Specifications动态构建查询