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

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

一、把项目拆分,来一个单独登录的包,放在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. 在C#中调用EXE文件
  2. 关于引用JS和CSS刷新浏览器缓存问题
  3. XUtils
  4. Android开发小问题总结
  5. There is no ‘Animation’ attached to the “Player” game object
  6. SVN版本冲突解决
  7. iOS 不让自动锁屏
  8. php获得ip地址
  9. Asp.Net Web API 2第十一课——在Web API中使用Dependency Resolver
  10. How far away[HDU2586]
  11. PHP MAIL DEMO(程序代码直接发送邮件)
  12. leetcode Binary Search Tree Iterator python
  13. uber在限制新司机加入了,看看新政策把
  14. js substr()与substring()的区别
  15. VBS基础篇 - 对象(7) - TextStream对象
  16. zabbix安装详解
  17. Linux+.Net Core+Nginx(在Linux上使用Nginx反向代理.Net Core 项目)
  18. 第二单元电梯调度作业 By Wazaki
  19. RMQ--ST表
  20. Linux命令详解一:基础命令新建、删除、拷贝~~~

热门文章

  1. servlet 会话管理
  2. java和python对比----1:
  3. C++ friend友元函数和友元类(转)
  4. logical_backup: expdp/impdp
  5. K8s-Pod
  6. 插件使用一进度条---nprogress
  7. python---使用字典来实现链接表图
  8. error C1128: 节数超过对象文件格式限制: 请使用 /bigobj 进行编译
  9. Linux批量清空当前目录中的日志文件
  10. ncat