Program Tip

Flask @ app.route에서 Python 콘솔로 인쇄하는 방법

programtip 2020. 11. 11. 20:31
반응형

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

반응형