一、业务场景如下

很简单,哥就想实现一个登录,你去实现吧,那提到这个,我们会想到以下几点

1、前台,我要做一个登录业面

2、然后发送一个ajax请求

3、用户名密码一定是个表单,表单提交那是一个post请求

4、用户名能忍,密码很重要,总不能明文传输吧,得加个密

5、这个也不能赤果果的放在url后面传吧,所以,form表单的post请求方式明显不合格,我们试试用数据传输,从用户名密码的角度,这明显是个字典格式,那我们就传个json吧

6,前台定好了,还要后端的接口,处理发过来的用户名密码

二、在这之前,我们先了解几个小业务

1、密码加密,我们采用一个随机的3位数字+密码,然后进行base64加密的方式传输,jquery实现是这样的

(1)首先生成三位随机数字

            var num = '';for (var i = 0; i < 3; i++) {num += Math.floor(Math.random() * 10);}

(2)完成base64加密

先引入两个jquery的包,记住前面的static是我自己的静态文件路径,你要写你的<script src={% static "jquery-3.6.0.min.js" %}></script>
<script src={% static "jquery.base64.js" %}></script>加上上面的随机数代码,总体是这样的var num = '';for (var i = 0; i < 3; i++) {num += Math.floor(Math.random() * 10);}var password = $.base64.encode(num+data.field.password);

如果你不想知道static咋来的,看看这个文章吧

django_layui+jquery+token实现平台的登录_分享自己浅浅的知识-CSDN博客一、我们现在做一个登录页面1、layui :前端开发框架,类似vue2、jquery:js代码二、layui的静态资源引用layui静态资源下载:Layui - 经典开源模块化前端 UI 框架image.png三、下载js静态资源https://code.jquery.com/jquery-3.6.0.min.js打开后不要害怕,你没看错image.png点击右键,另存为就行了四、django中加载layui和js的静态资源在项目的根目录下建一个 shttps://blog.csdn.net/weixin_43258703/article/details/121448595

三、ajax发送json

   $.ajax({type: "POST",url: "/login/do_login/",contentType: "application/json",dataType: "json",data: JSON.stringify({"username": data.field.username, "password": password}),success: function (result) {if (result.error_code == 0) {layer.msg(result.msg, {time: 3000}, function () {window.location.href = "/login/index/";});} else {layer.msg(result.msg, {time: 3000})}},error: function () {alert("提交失败");}});

三、加上form表单的完整请求如下

        form.on('submit(login)', function (data) {#生成base64字符串var num = '';for (var i = 0; i < 3; i++) {num += Math.floor(Math.random() * 10);}var password = $.base64.encode(num+data.field.password);console.log(password)#发ajax请求,记得data一定要用JSON.stringify$.ajax({type: "POST",url: "/login/do_login/",contentType: "application/json",dataType: "json",data: JSON.stringify({"username": data.field.username, "password": password}),success: function (result) {if (result.error_code == 0) {layer.msg(result.msg, {time: 3000}, function () {#如果登录成功,则一个get请求跳转到首页window.location.href = "/login/index/";});} else {layer.msg(result.msg, {time: 3000})}},error: function () {alert("提交失败");}});return false;});

四、后端怎么接受请求

1、接收请求:

这里我截出接收,知道request的值,剩下的都是你自己的逻辑操作,就不截了,省得看着眼花

2、关于python的base64 加密解密,我封装好的函数如下

import base64def base64_encryption(data,salt = None): #base64加密if isinstance(data,str):if salt !=None and isinstance(salt,str):data  = salt+dataencry_data  = base64.b64encode(bytes(data,encoding="utf-8"))result = str(encry_data,encoding="utf-8")res = {"error_code": 0, "msg":result}else:res = {"error_code":1,"msg":"传入的不是字符串"}return resdef base64_decrypt(data,salt =None):  #base64解密if isinstance(data,str):if salt !=None and isinstance(salt,str):data  = salt+dataencry_data  = base64.b64decode(bytes(data,encoding="utf-8"))result = str(encry_data,encoding="utf-8")res = {"error_code": 0, "msg":result}else:res = {"error_code":1,"msg":"传入的不是字符串"}return res

以上就是全过程,学废了没

django - ajax发送json格式请求相关推荐

  1. Ajax 发送json格式数据以及发送文件(FormData)和自带的序列化组件: serializers

    前后端传输数据的编码格式(contentType) get请求数据就是直接放在url?后面的 url?usernmae=junjie&password=123... 可以向后端发送post请求 ...

  2. 如何使用curl命令发送json格式请求体的post请求

    需求如题,也看了一些博客,发现写的对新手都不太友好,总体上也满足不了我的需求,所以写了这篇博客总结一下.直接上完整的命令: curl 'http://192.168.50.253:50081/hosp ...

  3. 【PostMan】1、Postman 发送json格式请求

    Postman 是一个用来测试Web API的Chrome 外挂软件,可由google store 免费取得并安装于Chrome里,对于有在开发Web API的开发者相当有用,省掉不少写测试页面呼叫的 ...

  4. jsp怎么接受ajax请求参数,通过ajax发送JSON并通过JSP中的请求获取参数

    我需要通过ajax(使用Jquery)发送JSON对象,并通过JSP(服务器端)中的请求对象获取所有参数.通过ajax发送JSON并通过JSP中的请求获取参数 我的JS代码: var request ...

  5. HTTP get请求发送JSON格式数据

    get请求一般不建议发送JSON格式的数据,单总有一些奇葩系统要求 分享下本人对接途牛 传递get请求 json数据的方法 第一步:平常的get请求不要想了 直接继承 import org.apach ...

  6. html js发送http请求数据格式,JS获取url参数,JS发送json格式的POST请求方法

    一.获取url所有参数值 function US() { var name, value; var str = location.href; var num = str.indexOf("? ...

  7. java后台解析json并保存到数据库_[Java教程]ajax 发送json 后台接收 遍历保存进数据库...

    [Java教程]ajax 发送json 后台接收 遍历保存进数据库 0 2017-09-25 15:00:23 前台怎么拿参数的我就不管了我也不会 反正用这个ajax没错 ajax 代码   一定要写 ...

  8. Ajax 提交json格式数据给后台

    Ajax 提交json格式数据 在实际的开发当中,尤其是在前后端分离的项目中,传输数据都是以json格式进行传输的,所以对于json格式数据的情求和响应的学习十分重要. 1.前端提交json格式数据 ...

  9. php 接收curl json数据格式,curl发送 JSON格式POST数据的接收,以及在yii2框架中的实现原理【精细剖析】...

    1.通过curl发送json格式的数据,譬如代码: function http_post_json($url, $jsonStr) { $ch = curl_init(); curl_setopt($ ...

最新文章

  1. WPF窗口长时间无人操作鼠标自动隐藏
  2. git分支指的是_你一定知道的Git分支模型
  3. w10系统没有打开方式_小白怎么制作微软官方win10系统安装启动U盘
  4. [IT业界] 网盘纷纷停止服务,下一个是谁?
  5. LeetCode 2186. 使两字符串互为字母异位词的最少步骤数
  6. asp.net从入门到精通配套课件_MATLAB从入门到算法实践第八期本周六直播
  7. Swift变量名的一种玩法
  8. vs code格式化代码
  9. VB根据窗体自动调整窗体内控件大小 注:实用,可以直接引用
  10. java计算一个日子距离_java计算两地距离(公里)
  11. 传感器原理及工程应用第4版
  12. 软件项目管理第五章笔记---项目成本管理
  13. java输出long最大值_Java调用long的最大值和最小值
  14. 如何评价 IEEE Access 成为了 Top 期刊?
  15. sqlplus中怎么导入java类,[导入]SQLPLUS 操作大全
  16. Python re.compile以及group分组
  17. ImageNet Classification with Deep Convolutional Neural Networks(AlexNet论文翻译(附原文))
  18. 【ArcGIS Pro二次开发】(6):工程(Project)的基本操作
  19. 大疆精灵4与双目视觉智能导航系统
  20. python汉字拼音查询_python获取一组汉字的拼音首字母

热门文章

  1. 最短路径树(SPT)介绍及matlab代码
  2. 小鸡拿着蚯蚓闯关的java游戏,饥饿蚯蚓大闯关游戏下载
  3. JMeter Logic Controller(逻辑控制器)之 ForEach Controller(循环控制器)
  4. 重启后网卡失效 需要禁用再起来_win2008网卡禁用后如何启动 - 卡饭网
  5. python爬虫-爬取酷狗音乐top榜
  6. docker-compose启动tomcat容器
  7. 知识变现海哥:知识付费的本质不是知识,而是解决问题
  8. 社交软件的软件测试,我用过的几款社交app的非专业测评(之一:聊呗)
  9. android TextView字体粗细
  10. 安卓文字转语音——其实可以很简单——TextToSpeech用法解析