python处理AJAX请求

先要起一个服务 server.py,可以支持python的cgi脚本。

#!coding:utf8 
from BaseHTTPServer import HTTPServer3 
from CGIHTTPServer import CGIHTTPRequestHandler  port=80806  httpd=HTTPServer((‘‘,port),CGIHTTPRequestHandler) 
print("Starting simple_http on port:"+str(httpd.server_port)) httpd.serve_forever()

在服务脚本相同的目录下新建cgi-bin文件夹,放置python的cgi脚本,getuser.py

#!coding:utf8  
import cgi,cgitb  
import urllib2  
form=cgi.FieldStorage()  
name=form.getvalue(‘user_name‘)  
age=form.getvalue(‘user_age‘)  
sex=form.getvalue(‘user_sex‘)  
data=name 
print "Content-type: text/html"  
print 
if name != None and len(name) > 0:14    
print "<p id=name>%s</p>"%name15 else:16     
print "<p id=name>请输入相关信息</p>"

html页面,以post方式发送请求,并返回用户名,ajax.html,和server.py在一个目录下:

<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>Ajax Post 传值</title></head><script language="javascript">function saveUserInfo()
{    //获取接受返回信息层
    var msg = document.getElementById("msg");    //获取表单对象和用户信息值
    var f = document.user_info;    var userName = f.user_name.value;    var userAge   = f.user_age.value;    var userSex   = f.user_sex.value;    //接收表单的URL地址
    var url = "/cgi-bin/getuser.py";    //需要POST的值,把每个变量都通过&来联接
    var postStr   = "user_name="+ userName +"&user_age="+ userAge +"&user_sex="+ userSex;    //实例化Ajax
    //var ajax = InitAjax();

    var ajax = false;    //开始初始化XMLHttpRequest对象
    if(window.XMLHttpRequest) 
    {     //Mozilla 浏览器        ajax = new XMLHttpRequest();        if (ajax.overrideMimeType) 
        {    //设置MiME类别            ajax.overrideMimeType("text/xml");
        }
    }    else if (window.ActiveXObject) 
    {     // IE浏览器
        try 
        {
            ajax = new ActiveXObject("Msxml2.XMLHTTP");
        } 
        catch (e) 
        {            try 
            {
                ajax = new ActiveXObject("Microsoft.XMLHTTP");
            } 
            catch (e) {}
         }
    }    if (!ajax) 
    {     // 异常,创建对象实例失败        window.alert("不能创建XMLHttpRequest对象实例.");        return false;
    }    //通过Post方式打开连接    ajax.open("POST", url, true);    //定义传输的文件HTTP头信息    ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");    //发送POST数据    ajax.send(postStr);    //获取执行状态    ajax.onreadystatechange = function() 
    { 
           //如果执行状态成功,那么就把返回信息写到指定的层里
           if (ajax.readyState == 4 && ajax.status == 200) 
        { 
            msg.innerHTML = ajax.responseText;            //msg.innerHTML = ajax.return;            } 
    } 
}</script><body ><div id="msg"></div><form name="user_info" method="post" action="">姓名:<input type="text" name="user_name" /><br />年龄:<input type="text" name="user_age" /><br />性别:<input type="text" name="user_sex" /><br /><input type="button" value="提交表单" onClick="saveUserInfo()"></form></body></html>

首先运行server.py:

启动浏览器,输入127.0.0.1:8080:

点击ajax.html:

输入用户名,年龄,性别,点击提交或者什么都不输入

时间: 2024-10-24 06:51:58

python处理AJAX请求的相关文章

python 解析ajax请求带有json参数,请求方式是post的url(注意:参数的json格式的)

import requests # tag = 'http://exercise.kingname.info/exercise_ajax_1.html'#最开始的网址,下面两个为子链接 url = 'http://exercise.kingname.info/ajax_1_backend' url2 = 'http://exercise.kingname.info/ajax_1_postbackend' req = requests.get(url) print(req.text) params

自动化运维Python系列之Django路由系统、Ajax请求

路由系统 路由系统负责分析处理用户请求网址内容,向后视图函数分发处理任务,根据对应的处理函数处理完成后给用户return模板渲染结果:路由系统分类很多,常见的有基本单一路由,正则路由,带额外参数路由,二层三层路由还有通过反射机制来完成的动态路由. 1)单一路由 url(r'^admin/', admin.site.urls) 2)基于正则的路由 url(r'^detail/(\d+)/', views.detail), url(r'^detail2/(?P<p1>\d+)/(?P<x2&

python测试开发(06-前端[HTML,JS,CSS]+ajax请求)

1.HTML 略 2.JS var i = 0;while (i < 10) { console.log(i); i++;} for (var j = 0; j < 10; j++) { console.log(j)} // for in:遍历循环// 遍历数组var aList=Array( 11,22,33,44,55);for(i in aList){ console.log(i); //遍历数组的下标 console.log(aList[i]) //遍历数组的值} // 遍历对象:遍历

AJAX请求和跨域请求详解(原生JS、Jquery)

一.概述 AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术. AJAX = 异步 JavaScript 和 XML,是一种用于创建快速动态网页的技术.通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新.传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面. 本博客实验环境: python:2.7.11 web框架:tonado jquery:2.1.1 二.“伪”AJAX 由于

Flask web开发 处理Ajax请求

本文介绍如何处理ajax请求, 一.处理ajax的post请求 举例一: js代码举例如下: var id = obj.parentNode.parentNode.id; $.post("/delitem/"+id, {}, function(data){ showData(data); },"json"); 对应的flask代码举例如下: @app.route('/delitem/<id>', methods=['POST']) def delitem

分析Ajax请求并抓取今日头条街拍美图

通常我们从网页上爬取内容时,都是HTML代码,内容都已经写好了,直接从页面获取想要的信息即可,但是有的网页是通过ajax获取的数据,将ajax获取的数据通过json格式接受,然后展示在页面上的,也就是说,当我们打开一个页面时,首先请求的是他的html,然后HTML里面通过ajax获取后端数据,将数据以json格式展示在页面上.而近日头条就是这样.下面我们来看看. 我们打开链接:https://www.toutiao.com/search/?keyword=%E8%A1%97%E6%8B%8D,我

模拟ajax请求爬取微博

#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/9/26 10:26 # @Author : Sa.Song # @Desc : 抓取崔庆才微博, 模拟ajax请求 # @File : weiBo.py # @Software: PyCharm import requests from urllib.parse import urlencode from pyquery import PyQuery as pq heade

爬虫—Ajax请求的确定

有时候在抓取页面的时候,我们得到的结果和浏览器中看到的的结果是不一样的.在浏览器中可以正常看到的界面,使用requests不能够正确的得到.这是因为requests得到的是原始的html文档,而浏览器的页面则是经过JavaScript处理后生成的数据,这些数据的来源很多,其中有一种是使用Ajax技术加载的.还有另外两种是经过JavaScript和特定算法生成的.以及包含在html文档中的. 对于Ajax方式的数据加载方式,它是一种异步加载的方式,原始页面最初的时候不会包含某些数据.而是在加载完成

数据之路 - Python爬虫 - Ajax

一.Ajax数据爬取 1.Ajax介绍 Ajax,全称为Asynchronous JavaScript and XML,即异步的JavaScript和XML. 它不是一门编程语言,而是利用JavaScript在保证页面不被刷新.页面链接不改变的情况下与服务器交换数据并更新部分网页的技术.发送Ajax请求到网页更新过程,简单分为以下3步:发送请求:解析内容:渲染网页.Ajax具有特殊的请求类型,它叫作xhr. 2.Ajax数据爬取 # 首先,定义一个方法来获取每次请求的结果. 在请求时,page是