我试图在Heroku上使用Flask在两个python脚本之间传递数据,我认为多处理是最好的策略,但我遇到了一个错误。我从另一个类似的问题中选取了一个simple script,并将其修改为一个示例
基本思想是,在我的脚本中,一个脚本从用户处获取字符串数据(如“有哪些酒店可用?”)。第二个脚本运行flask,解释字符串(“有哪些酒店?”)以搜索数据库
在下面的示例中,脚本2遇到错误,因为调用它时“字母”未定义。这里没有显示,但我还尝试在第一个脚本中创建一个全局变量,并将其传递给f
函数(这也会导致错误,可能不是最好的策略)
获取_user_input.py:
from multiprocessing import Process,Queue,Pipe
from send_to_flask import f
if __name__ == '__main__':
parent_conn,child_conn = Pipe()
p = Process(target=f, args=(child_conn,))
p.start()
print(parent_conn.recv()) # prints "Hello"
将_发送到_flask.py:
from multiprocessing import Process,Pipe
import random
import string
def randomString(stringLength=8):
letters = string.ascii_lowercase
return ''.join(random.choice(letters) for i in range(stringLength))
def f(child_conn):
#msg = "Hello"
msg = letters
child_conn.send(msg)
child_conn.close()
我还尝试将函数嵌入到另一个
def randomString(stringLength=8):
letters = string.ascii_lowercase
return ''.join(random.choice(letters) for i in range(stringLength))
f(child_conn, letters)
问题在于,一个函数存储字符串值,但将该值传递给字符串值的函数(f函数)无权访问该对象。我想指出的是,在我的实际程序中,这两个函数同时运行,因此上面的示例可能不是我问题的精确副本(字符串将是静态的,外部给定的)。我希望我能让这个问题很容易回答,让我知道我是否能让它变得更好
目前没有回答
相关问题 更多 >
编程相关推荐