• Python学习第158天(ajax练习)


    今天本来打算复习完ajax后完成bootstrip的练习的,但是由于近期的护网(断网)行动,网速实在是。。。。。。源码加载的贼慢,所以今天暂时完成了ajax的练习

    图形大致是这个样子的:

     上面一个在点击提交之后,系统会进行自动检测,并在console里面返回对应语句,这里“提交”和“等于”两个标签并没有采用a标签,而是通过div标签,再采用css和JavaScript进行编辑,具体内容如下:

    收下是本次记录的笔记:

    对话框添加,删除,修改
    添加:
        Ajax悄悄向后台发送请求:
            1.下载jQuery
            2.基本格式
                $.ajax({
                    url:'对应所要发送的路径,对应之前添加中a标签的action',
                    type:'规定发送方法GET/POST,此处使用的是POST',
                    data:{'username':'root','password':'123456'},  同url一并传递的参数
                    success:function(arg){
                        //回调函数,后台对传递参数已经完成执行,并返回结果到前台的时候,此时回调函数自动执行。
                        //arg就是数据后台端返回给我们的参数
                        //window.location.reload()
                        //JS主动刷新页面
                    }
                })

    url:

        re_path('^ajax.html$',ajax.ajax1),
        re_path('^ajax2.html',ajax.ajax2),
        re_path('^ajax3.html',ajax.ajax3)

    ajax.html

    关键就在于这部分<head>部分的<style>标签的内容,这里通过point和onclick进行时间绑定,从而将前端数据利用ajax传到后端

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            .btn{
                display: inline-block;
                padding: 5px 15px;
                background: cadetblue;
                color: white;
                cursor: pointer;
            }
        </style>
    </head>
    <body>
    <div>
        <input placeholder="用户名" type="text" id="username">
        <input placeholder="密码" type="password" id="password">
        <div class="btn" onclick="submitForm()">提交</div>
    </div>
    <p>
    
    </p>
    <div>
        <input placeholder="数字1" type="text" id="v1">
        +
        <input placeholder="数字2" type="text" id="v2">
        <div class="btn" onclick="addForm()">等于</div>
        <input type="text" id="v3">
    </div>
    
    <script src="/static/jquery-3.1.1.js"></script>
    <script>
        function submitForm() {
            var data_dict = {username:$('#username').val(),password:$('#password').val()}
            $.ajax({
                url:'/ajax2.html',
                type:'GET',
                data:data_dict,
                success:function (arg) {
                    console.log(arg)
                }
            })
        }
        function addForm() {
            var data_dic = {v1:$('#v1').val(),v2:$('#v2').val()}
            $.ajax({
                url:'/ajax3.html',
                type:'GET',
                data:data_dic,
                success:function (arg) {
                    $('#v3').val(arg)
                }
            })
        }
    </script>
    </body>
    </html>

    ajax.py

    from django.shortcuts import render,HttpResponse
    
    def ajax1(req):
        return render(req,'ajax1.html')
    
    def ajax2(req):
        user = req.GET.get('username')
        pwd = req.GET.get('password')
        import time
        time.sleep(5)
        return HttpResponse('i do!')
    
    def ajax3(req):
        v1 = req.GET.get('v1')
        v2 = req.GET.get('v2')
        try:
            v3 = int(v1)+int(v2)
        except Exception as a:
            v3 = '输入格式错误'
        return HttpResponse(v3)

    这部分基本属于简单处理

    经过本次ajax的复习,个人认为还是不能太过看重速度,应该重视练习,内容不多,但是问题依旧不断,尤其html文件中pycharm的检测不是很有效果,更需要注意细节。

  • 相关阅读:
    CMake基本语法
    Immutable使用与react+redux
    mysql 安装之docker
    elasticsearch 安装之docker 单机
    局域网共享时提示:你没有权限访问,请与网络管理员联系
    【python、Neo4j】 python3.6环境安装neo4j客户端
    【python】 Anaconda jupyter 服务正常,内核启动失败, ipython启动失败
    Neo4j 手动安装apoc插件
    Ubuntu16 安装配置Neo4j
    node工具之nodemon
  • 原文地址:https://www.cnblogs.com/xiaoyaotx/p/13688035.html
Copyright © 2020-2023  润新知