inflearn logo
강의

Course

Instructor

[Renewed] Introduction to Python Backend and Web Technologies for Beginners (Intermediate Python, Understanding Backend and Web Technology Basics with Flask) [Full Stack Part1-1]

flask Various Features: Various Decorators (Update)

섹션 8 flask 다양한 기능: 다양한 데코레이터 before_first_request 문의

Resolved

358

HYO JIN Kim

12 asked

0

섹션 8 flask 다양한 기능: 다양한 데코레이터

3분 37초

flask_deco.py 파일 실행 시

AttributeError: 'Flask' object has no attribute 'before_first_request'. Did you mean: '_got_first_request'?

라고 에러가 뜹니다.

검색 해 보니 Flask는 2.2.x 이후로 'before_first_request'를 더 이상 사용하지 않는다고 합니다.

before_first_request 는 어떻게 대체가 되는건지... 정보 검색이 어렵습니다.

어떻게 하면 될까요? 도와주세요~

python rest-api flask

Answer 3

0

funcoding

안녕하세요. 답변 도우미입니다.

이번 기회에 해당 영상도 새로 찍어서 업데이트하였고, 자료도 새로 다시 업데이트하여 업로드하였습니다.

관련 자료와 영상을 보시면 보다 선명히 이해하실 수 있으실 것 같습니다.

그래도 이슈가 있으시면 dream@fun-coding.org 로 메일로 가볍게 이야기해주시면 또 설명 드리겠습니다.

감사합니다.

0

HYO JIN Kim

넵! 제가 주피터 노트북 파일을 잘 봤어야했는데...
내용 확인하였습니다.!
빠른 업데이트 감사합니다.!^^

0

funcoding

안녕하세요. 답변 도우미입니다.

말씀하신 부분 다시 확인해보니, 제가 드린 자료에 이미 상세히 버전별 가이드를 넣어놓았습니다. 수업자료에서 다음 강의시 함께 보시는 다음 주피터노트북 파일에 상세히 추가 설명과 예제를 넣어놓았습니다.

7_flask_others.ipynb

괜찮으시면 해당 자료를 꼭 확인해보시면 좋을 것 같습니다. 그래도 이슈가 있으시면 dream@fun-coding.org 로 메일로 가볍게 이야기해주시면 또 설명 드리겠습니다.

 

감사합니다.

0

funcoding

안녕하세요. 답변 도우미입니다.

우선 불편을 드려 죄송합니다. 관련 부분은 좀더 검토해서, 조만간 자료등으로 업데이트하겠습니다.

Flask 2.2.x 버전 이후로 before_first_request 데코레이터는 더 이상 지원되지 않으며, 해당 기능을 대체하기 위한 새로운 방식이 도입되었습니다. 이 문제를 해결하기 위해서는 기존의 before_first_request를 대체하는 방법을 사용해야 합니다.

before_first_request 대신 before_request를 사용하면 됩니다. before_request는 첫 번째 요청뿐만 아니라, 매 요청 전에 실행되기 때문에 이를 적절히 처리하여 첫 번째 요청에만 실행되도록 코드를 작성할 수 있습니다.

해결 방법:

기존 코드:

from flask import Flask
​
app = Flask(__name__)
​
@app.before_first_request
def initialize():
    print("이 함수는 첫 번째 요청 전에만 실행됩니다.")

대체 코드:

from flask import Flask
​
app = Flask(__name__)
​
# 첫 번째 요청 여부를 확인하기 위한 플래그를 사용
first_request_handled = False
​
@app.before_request
def initialize():
    global first_request_handled
    if not first_request_handled:
        print("이 함수는 첫 번째 요청 전에만 실행됩니다.")
        first_request_handled = True

설명:

  • before_request 데코레이터는 모든 요청 전에 실행됩니다.

  • first_request_handled 플래그를 사용하여 첫 번째 요청 시에만 로직이 실행되도록 제한합니다.

  • 첫 번째 요청이 처리되면 first_request_handledTrue로 변경하여 이후 요청에서는 실행되지 않도록 설정합니다.

이 방식으로 before_first_request와 동일한 기능을 구현할 수 있습니다.

감사합니다. 잔재미코딩 드림

강의 자료 어디서 다운받나요? 없는데요..

0

150

1

강의 영상은 안나오고 소리만 나옵니다.

0

177

1

섹션 6 인증 failed 질문

0

153

1

192.168.0.12:8085??

0

155

1

04_flask_ABTest에서 blog_abtest.py 실행 시 오류입니다.

0

171

1

수업내용 질문 건

0

186

1

brew로 mysql 설치 후 서버 실행할 때, 터미널에서 anaconda bin 참조하는 문제

0

663

2

crossorigin 프로퍼티에 대해서 질문드립니다.

0

288

1

강의자료 다운로드 문의드립니다.

1

267

1

갑자기 웹 서버 띄울때 이상하게 나옵니다

0

313

1

가장빠른 Vue와 flask, 그리고 REST API 1 강의 질문입니다. (2)

0

347

1

가장빠른 Vue와 flask, 그리고 REST API 1 강의 질문입니다.

0

322

2

Fast api 추가 강좌 개설여부 질문드립니다!.

0

316

2

flask_cors설치 오류

0

618

2

부스트랩 html 다운

0

258

1

혹시 강의자료 공유가 가능한가요?

0

354

1

소스코드는 어디에 있을까요??

1

254

1

안녕하세요 몇가지 질문이 있습니다.

0

339

1

동적함수생성 질문드립니다.

1

631

2

(강의명) flask 로 Rest API 구현과 테스트 실행 : 오류 문의

0

577

1

백엔드 데코레이터 2 강의에 도전 문제 질문드립니다

0

289

1

몽고 DB 공식홈페이지 403 접속 에러 발생합니다.

1

625

3

04._flask_ABTest Pycharm 에서 실행오류

0

491

1

WinError 10013 ,오류 해결 가능할까요?

0

4112

1