最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • Django之ajax相关介绍

    正文概述    2020-04-02   343

    Django之ajax相关介绍

    AJAX

    Asynchronous Javascript And XML是 "异步Javascript和XML"。即使用 Javascript 语言与服务器进行异步交互,传输的数据为XML。

    同步交互:客户端发出一个请求后,需要等待服务器响应结束后,才能发出第二个请求;

    异步交互:客户端发出一个请求后,无需等待服务器响应结束,就可以发出第二个请求。

    优点:

    AJAX使用Javascript技术向服务器发送异步请求;

    AJAX无须刷新整个页面;

    因为服务器响应内容不再是整个页面,而是页面中的局部,所以AJAX性能高;

    缺点:

    AJAX并不适合所有场景,很多时候还是要使用同步交互;

    AJAX虽然提高了用户体验,但无形中向服务器发送的请求次数增多了,导致服务器压力增大;

    因为AJAX是在浏览器中使用Javascript技术完成的,所以还需要处理浏览器兼容性问题;

    大概步骤:

    step 1: var xmlhttp=XMLHttperquest()

    step 2: xmlhttp.open("")

    step 3: xmlhttp.send("name=klvchen") # 请求体的内容如果为 GET 请求则为 send(null)

    step 4: if(xmlhttp.readyState===4 && xmlhttp.status===200) # 监听

    相关推荐:《Python视频教程》

    ajax 发送GET请求

    创建一个 Ajax_lesson 项目 和 app01 应用

    修改 urls.py 文件

    from django.contrib import admin
    from django.urls import path
    from app01 import views
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('index/', views.index),
        path('ajax_receive/', views.ajax_receive),
    ]

    在 tempates 文件夹中添加 index.html 文件

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <button onclick="func1()">ajax提交</button>
    </body>
    <script>
        function createXMLHttpRequest() {
                var xmlHttp;
                try{
                    xmlHttp = new XMLHttpRequest();
                } catch (e) {
                    try {
                        // 适用于IE6
                        xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
                    }catch (e) {
                        try {
                            // 适用于IE5.5,以及IE更早版本
                            xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
                        }catch (e) {
                        }
                    }
                }
                return xmlHttp;
            }
        function func1() {
            var xmlhttp = createXMLHttpRequest()
            xmlhttp.onreadystatechange=function(){
                if (xmlhttp.readyState == 4 && xmlhttp.status == 200){
                    var data = xmlhttp.responseText;
                    alert(data);
                }
            }
            xmlhttp.open("GET", "/ajax_receive/", true);
            xmlhttp.send(null);
        }
    </script>
    </html>

    在 views.py 上修改

    from django.http import HttpResponse
    from django.shortcuts import render
    # Create your views here.
    def index(request):
        return render(request,'index.html')
    def ajax_receive(request):
        print('ok')
        return HttpResponse("hello world2")

    Django之ajax相关介绍

    ajax 发送POST请求

    修改 index.html 文件

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <button onclick="func1()">ajax提交</button>
    </body>
    <script>
        function createXMLHttpRequest() {
                var xmlHttp;
                try{
                    xmlHttp = new XMLHttpRequest();
                } catch (e) {
                    try {
                        // 适用于IE6
                        xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
                    }catch (e) {
                        try {
                            // 适用于IE5.5,以及IE更早版本
                            xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
                        }catch (e) {
                        }
                    }
                }
                return xmlHttp;
            }
        function func1() {
            var xmlhttp = createXMLHttpRequest()
            xmlhttp.open("POST", "/ajax_receive/", true);
            xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
           
            xmlhttp.send("name=klvchen");
            xmlhttp.onreadystatechange=function(){
                if (xmlhttp.readyState == 4 && xmlhttp.status == 200){
                    var data = xmlhttp.responseText;
                    alert(data);
                }
            }
        }
    </script>
    </html>

    修改 views.py 文件

    from django.http import HttpResponse
    from django.shortcuts import render
    # Create your views here.
    def index(request):
        return render(request,'index.html')
    def ajax_receive(request):
        if request.method=="POST":
            print("req.POST", request.POST)
        return HttpResponse("hello world2")

    在 settings.py 文件中注释

    #'django.middleware.csrf.CsrfViewMiddleware',  

    Django之ajax相关介绍


    起源地下载网 » Django之ajax相关介绍

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元