Python全栈 Web(Ajax 概述 创建)

简介: Flask、Python、Django、框架、服务器、客户端、浏览器、交互、WEB、Python前端、CSS、JAVA、HTML、H5、PHP、JavaScript、JQuery、分布式开发

什么是AJAX
Asynchronous JavaScript And Xml
异步的  JS  和 Xml

通过js异步的向服务器发送请求并接受响应数据

同步访问:
当客户端向服务器发送请求时 服务器在处理的过程中浏览器只能等待

异步访问:
当客户端向服务器发送请求时 服务器在处理的过程中 客户端可以做其他操作
不需要一直等待

AJAX优点:
异步访问
局部刷新
使用场合:
搜索建议
表单验证
前后端完全分离
AJAX核心对象  异步核心对象(XMLHttprequest):
什么是XMLHTTPRequest
代替浏览器向服务器发送异步请求并接受响应的 “异步对象”
是由js来提供的

创建异步对象
主流的异步对象是XMLHTTPRequest类型的 
并且主流浏览器(IE+ Chrome  Firefox Safari Opera)都支持
低版本浏览器中(IE6以下)就不支持XMLHTTPRequest  
需要使用ActiveXObject() 来创建异步对象

1.AJAX
1.创建 xhr

/**
 * common.js
 */
function createXhr(){
    if(window.XMLHttpRequest)
        return new XMLHttpRequest();
    else
        return new ActiveXObject('Microsoft.XMLHTTP');
}

@app.route('/02-get')
def get_views():
    return render_template('02-get.html')


2.xhr 的成员
1.方法 - open()
作用:创建请求
语法:open(method,url,asyn)
method:请求方式,取值'get' 或 'post'
url:请求地址,字符串
asyn:是否采用异步的方式
true:异步
false:同步
ex:
xhr.open('get','/server',true);
2.属性 - readyState
作用:请求状态,通过不同的请求状态来表示xhr与服务器的交互情况
由0-4共5个值来表示5个不同的状态
0 :请求尚未初始化
1 :已经与服务器建立连接
2 :服务器端已接收请求
3 :请求正在处理中
4 :响应已经完成
3.属性 - status
作用:服务器端的响应状态码
200 :表示服务器正确处理所有的请求以及给出响应
404 :请求资源不存在
500 :服务器内部错误
... ...
4.事件 - onreadystatechange
作用:每当xhr的readyState发生改变的时候都要触发的操作 - 回调函数
只有当readyState的值为4并且status的值为200的时候,才可以正常的去接收响应数据
5.属性 - responseText
作用:响应数据
6.方法 - send()
作用:通知xhr向服务器端发送请求
语法:send(body)
get请求:body的值为null
send(null)
post请求:此处为要提交的数据
send("请求数据")

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <button onclick="send_ajax()">发送AJAX请求</button>
    <p id="show"></p>
    <script src="/static/js/common.js"></script>
    <script>
        function send_ajax(){
            //1.创建xhr
            var xhr = createXhr();
            //2.创建请求
            // xhr.open(method,url,asyn)
            xhr.open('get','/02-server',true);
            //3.设置回调函数(判断状态接收响应数据)
            //xhr.onreadystatechange = function(){}
            xhr.onreadystatechange = function(){
                if(xhr.readyState == 4 && xhr.status == 200){
                    //xhr的自身状态是4并且服务器的状态是200就可以接收响应数据
                    document.getElementById('show').innerHTML = xhr.responseText;
                }
            }
            //4.发送请求
            xhr.send(null);
        }
    </script>
</body>
</html>

3.AJAX的操作步骤
1.GET请求
1.创建 xhr 对象
2.创建请求 - open()
3.设置回调函数 - onreadystatechange    判断状态并接收响应数据
4.发送请求 - send()

请求参数:
推荐:请求地址后拼QueryString
xhr.open('get','/02-server?key=value&key=value',true)
               2.POST请求
1.创建 xhr 对象
2.创建请求 - open()
3.设置回调函数 - onreadystatechange    判断状态并接收响应数据
4.设置请求消息头  - Content-Type
5.发送请求 - send()

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <script src="/static/js/common.js"></script>
  <script src="/static/js/jquery-1.11.3.js"></script>
</head>
<body>
  姓名:<input type="text" id="uname">
  <button id="btnSend">发送AJAX请求</button>
  <p id="show"></p>
  <script>
    $(function(){
      $("#btnSend").click(function(){
        //1.创建xhr
        var xhr = createXhr();
        //2.创建请求
        var url = "/03-server?uname="+$("#uname").val();
        xhr.open('get',url,true);
        //3.设置回调函数
        xhr.onreadystatechange = function(){
          if(xhr.readyState==4&&xhr.status==200){
            $("#show").html(xhr.responseText);
          }
        }
        //4.发送请求
        xhr.send(null);
      });
    });
  </script>
</body>
</html>



相关文章
|
1天前
|
设计模式 开发框架 数据库
Python Web开发主要常用的框架
Python Web开发框架包括Django、Flask、Tornado和Pyramid。Django适用于复杂应用,提供ORM、模板引擎等全套功能;Flask轻量级,易于扩展,适合小型至中型项目;Tornado擅长处理高并发,支持异步和WebSockets;Pyramid灵活强大,可适配多种数据库和模板引擎,适用于各种规模项目。选择框架需依据项目需求和技术栈。
8 2
|
1天前
|
安全 测试技术 持续交付
在Python Web开发中,测试是一个至关重要的环节
【5月更文挑战第12天】在Python Web开发中,测试至关重要,包括单元测试(unittest模块)、集成测试、功能测试、系统测试、验收测试、性能测试、安全测试和端到端测试。常用的测试工具有unittest、pytest、selenium、requests和coverage。遵循“测试先行”和“持续集成”原则,确保代码质量与稳定性。
8 3
|
3天前
|
缓存 数据库连接 数据库
构建高性能的Python Web应用:优化技巧与最佳实践
本文探讨了如何通过优化技巧和最佳实践来构建高性能的Python Web应用。从代码优化到服务器配置,我们将深入研究提高Python Web应用性能的各个方面。通过本文,读者将了解到一系列提高Python Web应用性能的方法,从而更好地应对高并发和大流量的挑战。
|
5天前
|
存储 程序员 API
python web开发示例详解
python web开发示例详解
14 0
|
6天前
|
XML 前端开发 JavaScript
CSR(客户端渲染)和AJAX在Web开发中各自扮演不同的角色
【5月更文挑战第8天】CSR(客户端渲染)与AJAX在Web开发中各司其职。CSR提供初始HTML框架,通过JavaScript在浏览器端获取并渲染数据,提升交互性和响应速度。AJAX则实现页面局部更新,如实时搜索,不刷新页面即可获取数据。CSR可能因DOM操作多而引发性能问题,但可优化解决;AJAX适合频繁交互场景,提高响应性。两者在不同需求下各有优势,需按项目选择适用技术。
13 4
|
6天前
|
前端开发 搜索推荐 安全
AJAX和CSR(客户端渲染)是Web开发中常用的两种技术
【5月更文挑战第8天】AJAX提升用户体验,减轻服务器压力,但对搜索引擎不友好且增加开发复杂度,易引发安全问题。CSR提供快速响应和交互性,改善用户体验,但首屏加载慢,搜索引擎支持不足,同样面临安全挑战。两者各有适用场景,需按项目需求选择。
10 0
|
7天前
|
数据采集 Python
使用Python实现简单的Web爬虫
本文将介绍如何使用Python编写一个简单的Web爬虫,用于抓取网页上的信息。通过分析目标网页的结构,利用Python中的requests和Beautiful Soup库,我们可以轻松地提取所需的数据,并将其保存到本地或进行进一步的分析和处理。无论是爬取新闻、股票数据,还是抓取图片等,本文都将为您提供一个简单而有效的解决方案。
|
7天前
|
持续交付 Python
使用Python实现自动化Web内容巡检
使用Python实现自动化Web内容巡检
19 1
|
5天前
|
JSON 数据格式 开发者
pip和requests在Python编程中各自扮演着不同的角色
`pip`是Python的包管理器,用于安装、升级和管理PyPI上的包;`requests`是一个HTTP库,简化了HTTP通信,支持各种HTTP请求类型及数据交互。两者在Python环境中分别负责包管理和网络请求。
19 5