반응형
Flask @ app.route에서 Python 콘솔로 인쇄하는 방법
사용자가 / button을 호출 한 후 "hello world"를 파이썬 콘솔에 간단히 인쇄하고 싶습니다.
이것은 내 순진한 접근 방식입니다.
@app.route('/button/')
def button_clicked():
print 'Hello world!'
return redirect('/')
배경 : 플라스크 (쉘이 아님)에서 다른 파이썬 명령을 실행하고 싶습니다. "인쇄"가 가장 쉬운 경우입니다. 나는 여기서 기본적인 비틀기를 이해하지 못했다고 생각합니다. 미리 감사드립니다!
당신이 해결 한 것처럼 보이지만이 답변을 찾는 다른 사람들에게는 stderr에 인쇄하는 것이 쉬운 방법입니다. 다음과 같이 할 수 있습니다.
from __future__ import print_function # In python 2.7
import sys
@app.route('/button/')
def button_clicked():
print('Hello world!', file=sys.stderr)
return redirect('/')
Flask는 콘솔에서 stderr에 인쇄 된 내용을 표시합니다. stderr로 인쇄하는 다른 방법은 이 stackoverflow 게시물을 참조하십시오.
로깅을 사용하여 콘솔에서 데이터를 인쇄 할 수도 있습니다.
예:
import logging
from flask import Flask
app = Flask(__name__)
@app.route('/print')
def printMsg():
app.logger.warning('testing warning log')
app.logger.error('testing error log')
app.logger.info('testing info log')
return "Check your console"
if __name__ == '__main__':
app.run(debug=True)
Flask의 핵심 문제는 stdout이 버퍼링된다는 것입니다. 로 인쇄 할 수있었습니다 print('Hi', flush=True)
. PYTHONUNBUFFERED
환경 변수 를 설정하여 버퍼링을 비활성화 할 수도 있습니다 .
참고 URL : https://stackoverflow.com/questions/32550487/how-to-print-from-flask-app-route-to-python-console
반응형
'Program Tip' 카테고리의 다른 글
특정 확장자를 가진 파일을 재귀 적으로 찾기 (0) | 2020.11.11 |
---|---|
새 활동에 대한 순환 표시 전환 (0) | 2020.11.11 |
jinja2 출력을 브라우저 대신 Python으로 파일로 렌더링하는 방법 (0) | 2020.11.10 |
비동기 호출에 대한 JNI 인터페이스 포인터 (JNIEnv *)를 얻는 방법 (0) | 2020.11.10 |
Git이 다른 저장소에서 분기를 가져 오나요? (0) | 2020.11.10 |