Python Flask:理解POST传输数据的方法

Python Flask:理解POST传输数据的方法,python,http,post,flask,Python,Http,Post,Flask,我的问题很难描述,所以我将重点解释情况。假设我有两个不同的实体,它们可能运行在不同的机器上。让我们呼叫第一个经理和第二个发电机。manager是唯一可以通过用户调用的 管理器有一个名为getVM(scenario\u Id)的方法,该方法将场景的Id作为参数,并从数据库中检索与给定Id对应的BLOB作为参数。这个BLOB实际上是一个XML结构,我需要将它发送到生成器。两个人都有一个烧瓶 在另一台机器上,我的生成器带有generateVM()方法,该方法将根据收到的XML结构创建VM。我们将不讨论

我的问题很难描述,所以我将重点解释情况。假设我有两个不同的实体,它们可能运行在不同的机器上。让我们呼叫第一个经理和第二个发电机。manager是唯一可以通过用户调用的

管理器有一个名为
getVM(scenario\u Id)
的方法,该方法将场景的Id作为参数,并从数据库中检索与给定Id对应的BLOB作为参数。这个BLOB实际上是一个XML结构,我需要将它发送到生成器。两个人都有一个烧瓶

在另一台机器上,我的生成器带有
generateVM()
方法,该方法将根据收到的XML结构创建VM。我们将不讨论如何从XML创建VM

目前我做了这样一件事:

经理

# This method will be called by the user
@app.route("/getVM/<int:scId>", methods=['GET']) 
def getVM(scId):
    xmlContent = db.getXML(scId)  # So here is what I want to send
    generatorAddr = sgAdd + "/generateVM"   # sgAdd is declared in the Initialize() [IP of the Generator]

    # Here how should I put my data ? 
    # How can I transmit xmlContent ? 

    testReturn = urlopen(generatorAddr).read()
    return json.dumps(testReturn) 
# This method will be called by the user
@app.route("/generateVM", methods=['POST']) 
def generateVM():
    # Retrieve the XML content...
    return "Whatever"
如您所见,我一直在研究如何传输数据本身(XML结构),然后如何处理它。。。所以,如果你有任何策略,提示,提示,关于我应该如何进行的线索,请随时回答。也许有一些事情我真的不了解烧瓶,所以请随意纠正我说的所有错误

致以最良好的问候和感谢


PS:带有路由的行会被注释,因为它们会弄乱语法着色

,除非我遗漏了什么,你不能在post请求的正文中传输它吗?这不是你的
generateVM
方法的设置方式吗

@app.route("/getVM/<int:scId>", methods=['GET']) 
def getVM(scId):
    xmlContent = db.getXML(scId)  
    generatorAddr = sgAdd + "/generateVM"   

xml_str = some_method_to_generate_xml()
data_str = urllib.urlencode({'xml': xml_str})
urllib.urlopen(generatorAddr, data=data_str).read()
return json.dumps(testReturn) 
@app.route(“/getVM/”,方法=['GET'])
def getVM(scId):
xmlContent=db.getXML(scId)
generatorAddr=sgAdd+“/generateVM”
xml\u str=生成xml()的某种方法
data_str=urllib.urlencode({'xml':xml_str})
urllib.urlopen(generatorAddr,data=data_str).read()
return json.dumps(testReturn)

问题是我不知道post body的语法,也没有找到任何使用它的示例。所以我在这里遵循这个理论,但是我得到了一个TypeError异常(必须是string或buffer,而不是dict),所以我认为它在抱怨你的身体inserted@NNzz是,抱歉,它应该是
数据参数必须是标准的application/x-www-form-urlencoded格式;请参阅下面的urlencode()函数。
不是一个dict。updated只是在给出答案之前检查了它。无论如何,谢谢你,我接受了你的回答;)