首页 > 编程语言 >Python之Http服务设置跨域请求

Python之Http服务设置跨域请求

时间:2023-11-28 09:24:26浏览次数:42  
标签:Control Http 跨域 Python resp after request Access

Http服务设置跨域请求

跨域是什么就不在此进行赘述了, 百度一下,你就知道。

flask的处理方法

flask中处理跨域很简单, 只需要在flask的app对象中注册函数处理:

app.after_request(after_request)

其中的after_request即为处理跨域的函数, 当请求处理完成,还未响应给客户端之前,flask会调用这个函数。

def after_request(resp):
    """响应返回客户端前的钩子函数, 该函数用于保证跨域能够正常

    Args:
        resp (object): 响应

    Returns:
        resp: 修改后的响应
    """
    resp = make_response(resp)
    resp.headers['Access-Control-Allow-Origin'] = '*'
    resp.headers['Access-Control-Allow-Methods'] = 'GET,POST'
    resp.headers['Access-Control-Allow-Headers'] = 'x-requested-with,content-type'
    return resp

以上代码加装饰器@app.after_request可以达到同样效果, 如果以装饰器方式, 则无需调用app.after_request(after_request)

http.server的处理方法

http.server为python预置库, 只需提供一个RequestHandler给到TCPServer对象。处理跨域核心代码在end_headers中。

import os
import sys
import http.server
import socketserver

class HTTPRequestHandler(http.server.SimpleHTTPRequestHandler):
    def end_headers(self):
        self.send_header('Access-Control-Allow-Origin', '*')
        self.send_header('Access-Control-Allow-Methods', 'GET,POST')
        self.send_header('Access-Control-Allow-Headers', 'x-requested-with,content-type')
        http.server.SimpleHTTPRequestHandler.end_headers(self)

def server(port):
    httpd = socketserver.TCPServer(('', port), HTTPRequestHandler)
    return httpd

标签:Control,Http,跨域,Python,resp,after,request,Access
From: https://www.cnblogs.com/quenwaz/p/17861079.html

相关文章

  • python pandas绘图
    pandas绘图导包importmatplotlib.pyplotasplt#进行图形绘制的常用模块。#结合Pandas和Matplotlib.pyplot,您可以在数据分析和可视化方面有更多的灵活性。折线图#折线图s=pd.Series([100,200,300,200,150,80])s.plot()使用了Pandas的Series对象,并调用了其......
  • python基础 类(二) 类的封装与属性隐藏
    封装创建一个实例对象后,事先定义在类的函数就成为该实例对象的函数即方法,事先定义在类中绑定在self上的变量成为该实例对象的数据,各个实例对象的方法和数据是互相独立的,互干扰影响类的实例对象可以调用函数即方法,这样通过方法来访问或者修改属于该实例对象的数据,就是所谓......
  • Python用偏最小二乘回归Partial Least Squares,PLS分析桃子近红外光谱数据可视化
    全文链接:https://tecdat.cn/?p=34376原文出处:拓端数据部落公众号PLS,即偏最小二乘(PartialLeastSquares),是一种广泛使用的回归技术,用于帮助客户分析近红外光谱数据。如果您对近红外光谱学有所了解,您肯定知道近红外光谱是一种次级方法,需要将近红外数据校准到所要测量的参数的主要......
  • R语言和Python对copula模型Gaussian、t、Clayton 和 Gumbel 族可视化理论概念和文献计
    原文链接:http://tecdat.cn/?p=27240 原文出处:拓端数据部落公众号最近我们被客户要求撰写关于copula的研究报告,包括一些图形和统计输出。本文包含一些直观的示例来说明copula理论的核心概念。以下是脚本及其各自用途的简短列表:首先演示如何使用高斯copula来模拟具有任意......
  • Python实现完全二叉树
    给定一个元素序列(如列表),递归的创建一颗完全二叉树完整代码如下#!/usr/bin/envpython3classTreeNode:"""Nodeofcompletetree"""def__init__(self,data=0):self.data=dataself.left=Noneself.right=Nonedefb......
  • 关于python中pip安装库过程中报错的解决办法
    晚上使用flask框架搭建web服务,启动后报错如下:WARNING:Thisisadevelopmentserver.Donotuseitinaproductiondeployment.UseaproductionWSGIserverinstead. 经过搜索大法,发现是因为在开发环境中,Flask应用程序是使用内置的服务器(如SimpleServer或Lighttpd)运......
  • 【Python】Formatter预定义的字段有哪些
    字段描述namelogger名字levelno日志级别数字levelname日志级别字符串pathname打印日志文件路径filename打印日志文件名module模块名lineno日志调用行数funcName日志调用所在函数名created消息创建时的时间对象(time.time())asctime消......
  • 【Python】【OpenCV】Cameo项目(一)实时显示摄像头帧
     Cameo项目介绍:1、实时捕获并显示摄像头帧。2、具备截图、保存视频和退出三个功能键。 要求存在文件:manager.py和cameo.py 一、manager.py两个类:CaptureManager、WindowManager  CaptureManager负责摄像头帧的捕获,编解码得到实际帧,当前帧保存为图片、一段时间内的......
  • C++ vs Python
    WhyC++isfasterthanPythonhttps://www.freecodecamp.org/news/python-vs-c-plus-plus-time-complexity-analysis/SummaryTable编程语言stronglytyped?跨平台语言类型C++YesYes编译型PythonNoYes解释型参考资料stronglytypedprogrammingla......
  • 学习Python相关软件的安装
    学习Python相关软件的安装Typora软件的使用它不是国产软件的,它是国外的,官方网站是国外,在国内下载国外的软件,就会出现下载速度慢的问题#1.下载:https://typoraio.cn/这个软件不是免费使用的,虽然收费但是不贵,很好用!#2.这款软件是支持markdown格式的,是目前使用最为频繁......