当前位置: 首页 > 知识库问答 >
问题:

响应头在python rest api和烧瓶,烧瓶cors

章威
2023-03-14

我已经用flask在python上制作了一个restapi(端口:5000),我正在从一个网站(端口:80)发出get和post请求。我收到了cors错误,所以我尝试在RESTAPI中为站点创建一个响应头。但是我得到了导入错误:

Traceback (most recent call last):
File "C:\Users\arist\Desktop\Aristo-api.py", line 3, in <module>
from flask_cors import CORS
ModuleNotFoundError: No module named 'flask_cors'

我已经下载了烧瓶cors模块并升级它,并确保它是在正确的路径,但它仍然不工作。

API代码:

from flask import Flask, jsonify, request, Response
import json
from flask_cors import CORS  #error here

app = Flask(__name__)
CORS(app)
table_num = 0;
orders= []
put_bill = []

@app.route('/order', methods=['PUT'])
def submitorder():
    request_order = request.get_json()
    orders.append(request_order)
    response = Response("successfully submitted order", status=200)
    return response

@app.route('/all', methods=['GET'])
def get_all_orders():
   return jsonify(orders)

@app.route('/order/<int:num>', methods=['GET'])    
def get_by_tablenum(num):
   for table in orders:
       if table['tablenum']==num:
           return jsonify(table)
    return Response('invalid table number', status=404)

 @app.route('/menu', methods = ['GET'])
    def get_menu():
        menu_txt = open("C:\\Users\\arist\\Desktop\\New_Menu\\Menu.txt", "r")
        menu_fin = menu_txt.read()
        response = menu_fin
        return response

  @app.route('/bill/<string:tableid>', methods=['PUT'])
   def ask_for_bill(tableid):
       put_bill.append(tableid)
       return Response("table successfully asked for the bill", status=200)

  @app.route('/bill/all', methods=['GET'])
    def get_all_bills():
       return jsonify(put_bill)



  app.run(port=5000, host='0.0.0.0')

共有1个答案

谭嘉容
2023-03-14

首先需要确保安装的flask cors模块与python版本(32位或64位)兼容。如果在检查版本后仍然出现错误,那么作为最后手段,您可以尝试查找与flask_cors关联的python文件(包括文件本身),并将它们复制到项目文件中。如果仍然不起作用,您可以尝试使用“pip unistall flask_cors”卸载以前的数据包并重新安装它们。

 类似资料:
  • 我正在检索mongo集合中与子字符串查询匹配的所有文档: 然后将所有匹配的文档作为JSONArray返回给java客户端: 当我想在java端解析JSONArray时,我必须执行以下操作: 我很有信心我在这里做错了什么。我不必先将JSONArray元素转换为字符串,然后再转换为JSONObject。我是否可以直接从JSONArray中检索JSONObject,而不用先将其转换为字符串?

  • 我发现很难找到有关这方面的资料。会是什么?我如何解决这个问题?有哪些可能的修复方法? UWSGI日志文件 时钟来源:unix检测到CPU核数:4当前工作目录:/home/pi检测到二进制路径:/usr/local/bin/uwsgi!!!没有内部路由支持,重建与pcre支持!!!*警告:您在没有主进程管理器的情况下运行uWSGI进程数限制为7336内存页大小为4096字节检测到最大文件描述符号:6

  • 我正在建立一个小网站,我已经在SQLAlChemy中拥有了我所有的模型。该网站将发布一些离线计算的信息。只有结果将被发布到一个精简的数据库,即它包含结果,而不是原始数据,但网站需要查询结果。 我将使用Flask,因为我的模型已经用Python驱动了(通过SWIG在C中进行了一些繁重的工作),我不想使用Django。 我敢肯定,以前有人问过这个问题,通常没有太多理由的咒语是“使用炼金术”。问题是为什

  • 问题内容: 我正在用React构建Flask应用程序,但最终遇到了路由问题。 后端负责成为API,因此某些路由如下所示: 以及通往React的主要路线: 我在React应用程序中使用react-router,一切正常,react- router带我进入,并获得了渲染视图,但是当我刷新页面时,Flask应用程序会处理此调用,并且会出错。 最好的解决方案是什么?我正在考虑重定向所有未调用的调用,这是不

  • 我正在使用flask-RESTful开发API,并且对Flask的jsonify函数有问题。我正在使用flask-marshmlet进行JSON序列化。下面是一个非常简化的代码片段: 在本地,endpoint将返回具有键“data”和“error”的json;但是,当在Linux服务器上运行时,它会返回一个包含列表和在没有“data”和“error”键的情况下返回的结果。 我已经确定这种不一致是由

  • 运行代码时,我不断收到以下错误: 类型错误:“响应”对象不可调用 这是我的代码...