zoukankan      html  css  js  c++  java
  • 利用django框架,快速开发一个登录接口

    django的mvt模式大概有什么作用,templates用来写前端html页面,views视图函数用来编写业务逻辑,是前后端交互的中间层,前端获取用户输入的数据,通过views视图函数保存到models数据库里面去,前端需要展示的页面数据也是通过views函数来获取到数据库里面的数据然后传递到前端的模板里面去, models模型主要用来设计数据表,对表数据进行增删改查的操作。

    开发登录接口大致分为3个步骤:

    第一步编写html模板:

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <title>登陆页面</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    </head>
    <body>
    <form action="" method="post">
    <table align="center">
    <tr>
    <td>用户名</td>

    <td>
    <input type="text" name="username" />
    </td>
    </tr>
    <tr>
    <td>密码</td>
    <td>
    <input type="text" name="password"/>
    </td>
    <tr>
    <td>
    <input type="submit" value="提交">
    </td>

    </tr>
    </table>
    </form>
    </body>
    </html>

    打开如图:

    第二步创建数据库表:

    如图定义好模型:

    settings文件里配置数据库信息:

    打开cmd执行迁移命令,生成数据库表

    Python manage.py makemigrations

    Python manage.py migrate

    如图:

     生成成功如图:

    里面数据是我自己添加的

    第三步编写views视图函数:

    如下:

    大意是从前端页面获取到数据分别存储到username,password这2个变量里面,再从数据库里面读取数据,进行对比,2端数据一样则返回成功,不一样则返回用户名或密码错误。

    def studentlogin(request):
        if request.method == "GET":
            return render(request,"student_login.html")
        if request.method == "POST":
            username = request.POST.get("username")
            password = request.POST.get("password")
            print("用户名:{},密码:{}".format(username,password))
            # TODO 获取到对象,从数据库里取值
            res = StundentInfo.objects.get(id=1)
            if res.username == username and res.password == password:
                print("数据库用户名:{},密码:{}".format(res.username,res.password))
                result = {"code": 0,
                          "msg": "success!",
                          "data": {"username": username,
                                   "password": password,
                                   }
                          }
                return JsonResponse(result)
            else:
                return HttpResponse("用户名或密码错误")

     从数据库里面取值:

    res = StundentInfo.objects.get(id=1),会返回一个对象,通过对象拿到里面的username和password的值:

     添加url映射:

    启动服务:python manage.py runserver 0.0.0.0:8000

    fiddler抓包如下:

    判断输入非空数据和保存数据:

    def studentlogin(request):
        if request.method == "GET":
            return render(request, "student_login.html")
        if request.method == "POST":
            username = request.POST.get("username")
            password = request.POST.get("password")
            print("用户名:{},密码:{}".format(username, password))
            # TODO 获取到对象,从数据库里取值
            res = StundentInfo.objects.get(id=1)
            if res.username == username and res.password == password:
                print("数据库用户名:{},密码:{}".format(res.username, res.password))
                result = {"code": 0,
                          "msg": "success!",
                          "data": {"username": username,
                                   "password": password,
                                   }
                          }
                return JsonResponse(result)
            elif username.strip() != '' and password.strip() != '':
                info = StundentInfo.objects.create(username=username, password=password)
                info.save()
                return HttpResponse("已保存数据")
            else:
                return HttpResponse("请重新输入")
  • 相关阅读:
    DIV 设置垂直居中
    JavaScript--什么是函数
    JavaScript--引用JS外部文件
    JavaScript--如何插入JS
    CSS-类和ID选择器的区别
    CSS-ID选择器
    CSS类选择器
    CSS样式介绍
    HTML--使用mailto在网页中链接Email地址
    HTML--form表单中的label标签
  • 原文地址:https://www.cnblogs.com/xiamaojjie/p/12521016.html
Copyright © 2011-2022 走看看