Flask는 Python으로 웹 애플리케이션을 구축하는 데 가장 널리 사용되는 마이크로 프레임워크 중 하나이며, 그 강력한 기능의 대부분은 데코레이터를 사용하는 데서 비롯됩니다. 이러한 데코레이터를 사용하면 코드를 복잡하게 하지 않고도 깔끔하고 읽기 쉬운 방식으로 프레임워크의 기능에 연결할 수 있습니다. 이 게시물에서는 가장 일반적으로 사용되는 5개의 Flask 데코레이터와 2개의 명예로운 언급을 살펴보겠습니다.
1 @app.route()
@app.route() 데코레이터는 Flask 앱의 URL 라우팅을 정의하는 데 사용됩니다. 해당 경로에 대한 논리를 처리하는 Python 함수에 URL을 바인딩합니다.
예:
@app.route('/')
데프 홈():
return "홈페이지에 오신 것을 환영합니다!"
이 간단한 예는 루트 URL(/)을 home() 함수에 매핑하여 방문자에게 환영 메시지를 반환합니다.
2 @app.before_request()
이 데코레이터는 모든 요청 전에 기능을 실행합니다. 인증 확인, 변수 초기화, 리소스 설정 등에 적합합니다.
예:
@app.before_request
def check_authentication():
user_is_logged_in()이 아닌 경우:
return "로그인하세요", 401
이 경우 해당 기능은 사용자의 인증 여부를 확인한 후 진행을 허용합니다.
3 @app.after_request()
@app.after_request() 데코레이터를 사용하면 요청이 처리된 후 클라이언트에 전송되기 전에 응답을 수정할 수 있습니다. 이는 헤더 추가 또는 응답 로깅과 같은 작업에 자주 사용됩니다.
예:
@app.after_request
def add_security_headers(응답):
response.headers['X-Content-Type-Options'] = 'nosniff'
답장
여기서는 모든 응답에 보안 헤더가 추가됩니다.
4 @app.errorhandler()
모든 웹 앱에서는 오류 처리가 중요합니다. @app.errorhandler() 데코레이터를 사용하면 404 Not Found와 같은 특정 HTTP 상태 코드에 대한 사용자 정의 동작을 정의할 수 있습니다.
예:
@app.errorhandler(404)
def page_not_found(e):
return "죄송합니다! 페이지를 찾을 수 없습니다.", 404
이 사용자 정의 핸들러는 404 오류가 발생할 때마다 사용자에게 친숙한 메시지를 반환합니다.
5 @app.teardown_request()
요청 후 정리에 사용되는 @app.teardown_request()는 데이터베이스 연결과 같은 리소스가 제대로 닫히도록 보장합니다.
예:
@app.teardown_request
def close_db_connection(예외=없음):
db_session.remove()
여기서는 요청 처리 중에 예외가 발생하더라도 각 요청 후에 데이터베이스 세션이 닫힙니다.
가작
이러한 데코레이터는 자주 사용되지는 않지만 특정 경우에는 매우 유용할 수 있습니다.
@app.before_first_request()
이 데코레이터는 첫 번째 요청이 처리되기 전에 기능을 실행하는 데 사용됩니다. 데이터베이스 연결이나 구성 로드와 같은 전역 리소스를 초기화하는 데 이상적입니다.
@app.before_first_request
def 초기화_db():
db.connect()
@app.context_processor()
모든 Jinja2 템플릿에 전역적으로 변수를 삽입해야 하는 경우 @app.context_processor() 데코레이터를 사용하세요. 이렇게 하면 현재 사용자 또는 앱 구성과 같은 값을 모든 템플릿에서 사용할 수 있습니다.
@app.context_processor
def inject_user():
dict(current_user=get_current_user()) 반환
이를 통해 매번 수동으로 전달할 필요 없이 모든 템플릿에서 current_user를 사용할 수 있습니다.
마무리
Flask의 데코레이터를 사용하면 웹 요청의 수명 주기를 쉽게 관리하고, 동작을 맞춤설정하고, 기능을 확장할 수 있습니다. 이러한 일반적인 데코레이터를 사용하는 방법과 시기를 이해하면 Flask 코드를 깔끔하고 유지 관리 가능하며 강력하게 유지하는 데 도움이 됩니다. 당신이 가장 좋아하는 데코레이터를 놓치셨나요? 알려주세요!
출처
플라스크 API
플라스크 라우팅
Flask 오류 처리
Flask 요청 후크
Flask 컨텍스트 프로세서
첫 요청 전 플라스크
위 내용은 최고의 중고 플라스크 데코레이터의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!