简单的django登录优化&ORM

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

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

一、把项目拆分,来一个单独登录的包,放在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文件

  1.模块倒入  

    from app01.models import User

  2.判断数据库和前端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==‘[email protected]‘ 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 完成

原文地址:https://www.cnblogs.com/clbao/p/9710578.html

时间: 2024-07-30 19:56:25

简单的django登录优化&ORM的相关文章

Django - 02 优化一个应用

Django - 02 优化一个应用 上一篇中我们已经创建了一个blog app,现在来用一下~ 2.1 添加第一篇blog 这个post 列表很丑陋哦,连标题都木有显示~ 2.2 自定义blog list 自定义下 blog/model.py from django.db import models from django.contrib import admin # Create your models here. #django.db.models.Model is the core pa

Django入门第一步:构建一个简单的Django项目

Django入门第一步:构建一个简单的Django项目 1.简介 Django是一个功能完备的Python Web框架,可用于构建复杂的Web应用程序.在本文中,将通过示例跳入并学习Django.您将按照以下步骤创建功能完备的Web应用程序,并一路学习框架的一些最重要的功能以及它们如何协同工作. 学习目标: 了解Django是什么以及为什么他是一个伟大的web框架 了解Django的体系结构以及与其他框架的对比 独立搭建一个简单的Django项目和应用程序(app) 2.为什么要学习Django

机房收费系统——登录优化

<机房收费系统个人版>基本上完工了,我的U层代码很多很乱.基本上是D层有几个函数,B层就对应有几个函数,U层使用对应B层中的每一个函数.比如说在登录中,U层首次要使用一个函数检查用户名和用户密码是否正确,然后再使用"添加用户上机记录"的函数.下面是登录的时序图: 登录业务比较简单,但是对于复杂的上机过程呢?U层要检查卡是否注册,余额是否充足,卡的状态是否在使用中,该卡是否现在不在线,通过这一系列检验后,还要查询学生表显示学生信息等等.这样就造成U层有好多函数,和B层的耦合度

Django中的ORM进阶操作

Django中的ORM进阶操作 Django中是通过ORM来操作数据库的,通过ORM可以很easy的实现与数据库的交互.但是仍然有几种操作是非常绕也特别容易混淆的.于是,针对这一块,来一个分类总结吧. 对于ORM对数据库的基本操作前面model里已经有了介绍,这里专门针对ORM的一对多.多对多.正向.反向等操作来讲解用法和注意事项. 铭记于心的两条: 在联表操作过滤查找数据时用双下划线 "__" 在取数据时用点 "." 一.一对多 首先来设计两张简单的表格,并在其中

Django之模型ORM

Object Relational Mapping(ORM) ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术. 简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中. ORM在业务逻辑层和数据库层之间充当了桥梁的作用. ORM由来 让我们从O/R开始.字母O起源于"对象"(Object),而R则来自于"关系&qu

Django中的ORM 和入门基础

day62  2018-06-12 1. 内容回顾 1. web框架的本质 1. socket 浏览器: socket客户端 服务器: socket服务端 2. HTTP协议:规定了一个收发消息的格式 3. 消息分类 请求(request):浏览器向服务端发送的消息 GET /index/ HTTP/1.1\r\n k1:v1\r\n ...\r\n \r\n 请求体 响应(response): HTTP/1.1 200 OK\r\n k1:v1\r\n ...\r\n \r\n 响应体   

第六章 Django框架学习——ORM详解

第六章 Django框架学习--ORM介绍与常用方法 一.ORM介绍 二.ORM中的常用字段和参数 三.ORM中的关系字段--一对一(OneToOneField) 四.ORM中的关系字段--多对多(ManyToManyField) 五.ORM中的元信息 一.ORM介绍(部分内容前面的章节已经介绍过,此处只做简单介绍) 什么是ORM(what): ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中. Django中的ORM: Django配置数据库 1.在se

Django框架05 /orm单表操作

目录 Django框架05 /orm单表操作 昨日内容回顾 今日内容 orm单表操作 对象关系映射(object relational mapping) 1.orm介绍 2.增: 3.时间问题 4.删 5.改 6.批量插入 -- bulk_create 7.查询api 8.基于双下划线的模糊查询 -- filter双下划线查询 9.总结 总结1 总结2 Django框架05 /orm单表操作 昨日内容回顾 模板相关 模板继承(母版继承) 1. 创建一个xx.html页面(作为母版,其他页面来继承

1122 django属性操作orm字段数据操作

目录 1. 静态文件的配置 手动静态文件的访问资源 静态文件的动态绑定 2.request方法 2.1 请求方式 2.2 获取前端的请求方式 request.method 2.3 request方法 request.method request.POST request.GET .get方法 3. pycharm连接MySQL 4. django连接MySQL数据库 4.1.配置文件配置 4.2.指定使用的数据库连接模块 5.django orm简介 5.1 基本概念 1. orm对象关系映射