함수에 있는 변수 값을 밖으로 빼서, 다른py파일에 import 하려 합니다.
조회수 2578회
안녕하세요. 간단히 설명하자면, control.py의 input()함수에 있는 변수값kkk(result2)를 다른 실행파일(run.py)에 넣고자 하는데요.
이문제를 해결하기위해 [1] global kkk라는 전역변수를 만들어 놓고, [2] input()함수가 app.route로 호출됐을때, 웹에서 받아온 result2 값을 kkk에 저장시킨 후, [3] subprocess로 run.py를 실행시키면, [4] run.py는 control.py의 kkk 변수 값을 import해서 실행 했었습니다.
run.py가 실행되지 않아서, 여러가지로 테스트 해본 결과 control.py에서 input() 함수 안의 kkk(result2) 값을 밖으로 빼낼수 없었습니다.
kkk값을 밖으로 뺴내려고, input()함수의 return 값을 2개로( return (kkk,redirect('/',302) ) 시도 해봤는데 안되고 결국 여기에 질문 남깁니다.. 문제를 해결할수 있게 방법론 등을 조언해 주시면 갑사하겠습니다ㅠ.
control.py
...
global kkk
@app.route('/')
def main():
connection = engine.connect() # DB 연결
result = connection.execute("select * from users") # DB에서 result1,2,값 가져옴
return render_template('index.html',table=result) # 홈페이지에 정의해둔 table에 값 뿌려줌
#여기부터 입니다. ---------- --------- ------------ --------
@app.route('/input', methods = ['POST'])
def input():
result1 = request.form['a'] # 웹에서 a 값 가져옴
result2 = request.form['b'] # 웹에서 b 값 가져옴
...
DB에 result1,2 값 저장
...
kkk = result2 # result2 값을 run.py에 보내기위해 kkk에 저장
path="python run.py"
subprocess_check_out(path, shell=True) #subprocess로 run.py 파일 실행
return redirect('/',302)
run.py
...
control.py에서 subprocess로 실행하려는 파일
...
from control import kkk # control.py에서 변수 kkk(result2)를 import 해 실행
run(kkk)
index.html
...
<form action="http://localhost:5000/input" method="post">
<label >a 경로:</label>
<input type="text" name="a">
<label >b 경로:</label>
<input type="text" name="b">
<label >생성:</label>
<input type="submit" value="create">
</form>
...
-
(•́ ✖ •̀)
알 수 없는 사용자
댓글 입력