Flask 프레임 워 크 각종 흔 한 장식 기 예시

본 논문 의 사례 는 Flask 프레임 워 크 의 각종 흔 한 장식 기 를 다 루 었 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
효과 django 와 유사 한 processrequest 의 장식 기

@app.before_request
def before(*args,**kwargs):
  print('    ')
  '''
          ,  return None
              return           ,
        django process_reqeust     。
                ,      session,        ,      
      request.path       ,     (   )   。
  request.url     url
  request.path      url  
  '''
  if request.path == '/login':
    return None
  user = session.get('user_info')
  if user:
    return None
  return redirect('/login')

유사 프로 세 스response

@app.after_request
def after(response):
  #   process_response    ,      ,     。
  print('   ')
  return response

flask 미들웨어 장식 기 실행 순서.
여러 개app.before_requestapp.after_request가 있다 면,
그럼 실행 순서 도 django 와 유사 합 니 다.app.before_request은 위 에서 아래로 집행(문서 의 상하)하고app.after_request은 아래 에서 위로 집행 한다.app.before_request에서return다른 내용 이 차단 되 었 다 면 보기 함 수 를 실행 하지 않 습 니 다.
바로 마지막app.after_reqeust부터 거꾸로 모든 것 을 집행 한다after_request.
사용자 정의 오류 페이지:

@app.error_handlers(404)
def error_404(arg):
  '''       ,       '''
  return "404   "

템 플 릿 의 맞 춤 형 방법:
전단 에서 백 엔 드 함 수 를 직접 호출 하 는 장식 기:

@app.template_global()
def xx(a1,a2):
  return a1+a2
'''
          ,         {{ xx(1,2)}}          。
'''

filter 에 해당 하 는 장식 기

@app.template_filter()
def db(a1,a2,a3):
  return a1+a2+a3
'''
   django Filter  ,             
{{ 1|db(2,3)}} 1      ,   2,3  。
'''

처음으로 조작 을 요청 하 러 온 장식 기:

@app.before_first_request
def first(*args,**kwargs):
  pass
'''
                  
'''

Flask 의 중간 부품 은 일반적으로 쓸모 가 크 지 않 고 장식 기 가 편리 하지 않다 고 느낀다.

재 복사app.wsgi_app를 통 해,
이 종류의__call__방법 을 다시 쓰 는 것 은 위의 그림 과 같이 두 개의 인쇄 만 추 가 했 을 뿐 효과 가 같다process_request.process_response더 많은 파 이 썬 관련 내용 은 본 사이트 의 주 제 를 볼 수 있 습 니 다.Python 입문 및 진급 고전 튜 토리 얼,Python 데이터 구조 및 알고리즘 튜 토리 얼,Python 함수 사용 기법 총화,Python 문자열 조작 기법 집합Python 파일 과 디 렉 터 리 작업 기법 을 모 았 습 니 다.
본 논문 에서 말 한 것 이 여러분 의 Python 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기