基于Flask创建Python服务端,并调用JavaScript客户端

简介: 基于Flask创建Python服务端,并调用JavaScript客户端

Python服务端

from flask import Flask, request
from flask_cors import CORS
class AiServer(object):
    def __init__(self):
        server = Flask(__name__)
        CORS(server, supports_credentials=True)
        server.route('/post', methods=['POST'])(self.post)
        server.run(port=8000, threaded=True)
    def post(self):
        if request.method == "POST":
            print("get post")
            response_data = request.get_data()
            print("response_data", response_data)
            return "Hello"
if __name__ == '__main__':
    AiServer()

这里一定要设置supports_credentials=True

JS客户端

<script>
  function createXMLHTTPObject()
    {
      var XMLhttpFactories = [//兼容不同浏览器和版本的创建函数数组
          function() {return new XMLHttpRequest()},
          function() {return new ActiveXObject("Msxml2.XMLHTTP")},
          function() {return new ActiveXObject("Msxml3.XMLHTTP")},
          function() {return new ActiveXObject("Microsoft.XMLHTTP")},
      ];
      var xmlhttp = false;
      for (var i = 0; i < XMLhttpFactories.length; i++)
      {
          try
          {
            xmlhttp = XMLhttpFactories[i]();
            break; //如果成功,则终止循环
          }
          catch (e)
          {
            continue; //如果异常,则继续使用下一个创建函数
          }        
      }
      return xmlhttp;
    }
    xmlhttp = createXMLHTTPObject();
    var receive_data;
    xmlhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
            receive_data = this.responseText
            console.log("rece:", this.responseText);
            // myObj = JSON.parse(this.responseText);
            // console.log(myObj);
        }
    };
    asynchronous_type = false;  //True为异步,false为同步
    xmlhttp.open("POST", "http://localhost:8000/post", asynchronous_type);
    // 发送数据格式:https://www.cnblogs.com/softidea/p/5745369.html  # x-www-form-urlencoded
    xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    obs = {num : 1}
    json_data = JSON.stringify(obs)
    xmlhttp.send(json_data)
    console.log(receive_data)
</script>


相关文章
|
20天前
|
API 数据库 数据安全/隐私保护
Flask框架在Python面试中的应用与实战
【4月更文挑战第18天】Django REST framework (DRF) 是用于构建Web API的强力工具,尤其适合Django应用。本文深入讨论DRF面试常见问题,包括视图、序列化、路由、权限控制、分页过滤排序及错误处理。同时,强调了易错点如序列化器验证、权限认证配置、API版本管理、性能优化和响应格式统一,并提供实战代码示例。了解这些知识点有助于在Python面试中展现优秀的Web服务开发能力。
26 1
|
2天前
|
JSON 数据格式 Python
Python 的 requests 库是一个强大的 HTTP 客户端库,用于发送各种类型的 HTTP 请求
`requests` 库是 Python 中用于HTTP请求的强大工具。要开始使用,需通过 `pip install requests` 进行安装。发送GET请求可使用 `requests.get(url)`,而POST请求则需结合 `json.dumps(data)` 以JSON格式发送数据。PUT和DELETE请求类似,分别调用 `requests.put()` 和 `requests.delete()`。
12 2
|
2天前
|
编解码 JavaScript 前端开发
python如何解决js逆向混淆?
python如何解决js逆向混淆?
7 0
|
12天前
|
分布式计算 DataWorks 关系型数据库
MaxCompute产品使用合集之我需要在MaxCompute客户端添加Python第三方包,我该怎么操作
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
12天前
|
编解码 JavaScript 前端开发
【专栏】介绍了字符串Base64编解码的基本原理和在Java、Python、C++、JavaScript及Go等编程语言中的实现示例
【4月更文挑战第29天】本文介绍了字符串Base64编解码的基本原理和在Java、Python、C++、JavaScript及Go等编程语言中的实现示例。Base64编码将24位二进制数据转换为32位可打印字符,用“=”作填充。文中展示了各语言的编码解码代码,帮助开发者理解并应用于实际项目。
|
17天前
|
JSON 测试技术 API
Python的Api自动化测试使用HTTP客户端库发送请求
【4月更文挑战第18天】在Python中进行HTTP请求和API自动化测试有多个库可选:1) `requests`是最流行的选择,支持多种请求方法和内置JSON解析;2) `http.client`是标准库的一部分,适合需要低级别控制的用户;3) `urllib`提供URL操作,适用于复杂请求;4) `httpx`拥有类似`requests`的API,提供现代特性和异步支持。根据具体需求选择,如多数情况`requests`已足够。
15 3
|
20天前
|
SQL 中间件 API
Flask框架在Python面试中的应用与实战
【4月更文挑战第18天】**Flask是Python的轻量级Web框架,以其简洁API和强大扩展性受欢迎。本文深入探讨了面试中关于Flask的常见问题,包括路由、Jinja2模板、数据库操作、中间件和错误处理。同时,提到了易错点,如路由冲突、模板安全、SQL注入,以及请求上下文管理。通过实例代码展示了如何创建和管理数据库、使用表单以及处理请求。掌握这些知识将有助于在面试中展现Flask技能。**
16 1
Flask框架在Python面试中的应用与实战
|
21天前
|
存储 JSON 数据安全/隐私保护
Flask Python:如何获取不同请求方式的参数
Flask Python:如何获取不同请求方式的参数
|
21天前
|
数据安全/隐私保护 Python
Python Flask-Mail实现邮件发送
Python Flask-Mail实现邮件发送
|
22天前
|
监控 数据可视化 NoSQL
Python基于Flask的高校舆情分析,舆情监控可视化系统
Python基于Flask的高校舆情分析,舆情监控可视化系统