플라스크 시리즈 - 프로그램의 기본 구조

I. 서론

또한 쓰기 뭔가 잊지 수 있지만 그들이 기록을 잊을 것이다, 그렇지 않은 쓰기 뭔가 다운을 느낌,하지만 더 같이 읽어 동기 부여 할 수있다

둘째, 프로그램의 기본 구조

1. 프로그램의 시작

  • # -*- coding:utf-8 -*-
    from flask import Flask
    
    app = Flask(__name__)
    
    @app.route('/') #使用app.route修饰器,把修饰函数注册为路由
    def index():    #index()这样的函数就叫视图函数
        return '<h1>Hello World!<h1>'
    
    #@app.route('/user/<int::id>') int;float;path:字符串不把/视作分隔符
    @app.route('/user/<name>')
    def user(name):
        return '<h1>Hello, %s!<h1>' %name
    
    if __name__ == '__main__':
        #debug=Ture启用调试模式
        app.run(debug=True) #run方法启动Flask集成的开发Web服务器
    

2. 요청

  • 매개 변수의 큰 숫자를 방지하기 위해 불필요한 혼란보기 기능, 플라스크를 사용하게 상황 전역으로 액세스 특정 개체에 임시로 변경.

    사용이 첫번째 프로그램 컨텍스트 또는 요청 컨텍스트를 활성화해야합니다 전에 다음 삭제 프로세스가 완료

    • 응용 프로그램 컨텍스트 :

      • CURRENT_APP : 현재 프로그램 활성화 프로그램의 예
      • g는 : 물체 일시적 처리 요구시 저장된, 모든 요청이 변수를 재설정
    • 요청 컨텍스트 :

      • 요청 : 요청 객체는, HTTP는 클라이언트 패키지의 내용에 의해 전송 된 요청
      • 세션 : 사용자 세션, 저장 요구 사이에 "기억"할 수있는 사전의 필요성에 대한 값

    꽤 있지만은 다른 요청에 추가하여 사용하는 방법을 이해하지만, 나중에 언급 될 책 ......

  • 그들은 다른 프로세스에 방해가되지 않는 동안 전 세계적으로 접근 스레드의 컨텍스트 특정 변수의 플라스크 메이크업 사용.

  • 이 요청에 전역 변수 스레드로 처리 :

    # -*- coding:utf-8 -*-
    from flask import Flask
    from flask import request   #引入
    
    app = Flask(__name__)
    
    @app.route('/')
    def User_Agent():
        user_agent = request.headers.get('User-Agent')
        return '<p>You brower is %s</p>' %user_agent
    
    if __name__ == '__main__':
        app.run(debug=True)
    

3. 요청 후크

우리는 함수를 등록해야합니다 :

  • before_first_request : 첫 번째 요청을 처리하기 전에 실행
  • before_request : 각 요청 전에 실행
  • after_request : 아무 처리되지 않은 예외가 슬로우되지 않는 경우, 각 요청 후에 실행
  • teardown_request : throw되는 처리되지 않은 예외가있는 경우에도, 각 실행 후 요청

요청보기 기능 일반 콘텍스트 g 글로벌 변수 사이 후크 함수가 데이터를 공유

  • 데이터베이스에서 로그인 사용자를로드하고, g의 .user에 그것을 저장 before_first_request
  • 때 이후보기 함수를 호출 한 다음 사용자 g.user를 얻기 위해 뷰 기능을 사용

약간은 이해하지만, 나중에 언급 될 책이지만 ......

4. 응답

  • 대부분의 경우, 응답은 간단한 문자열이며, HTML 페이지로 다시 클라이언트로 전송

  • 함수는 다른 코드를 사용하여 뷰 상태 요구에 대한 응답을 반환하는 경우 일 수 두번째 창 등의 디지털 코드 값

    @app.errorhandler(404)
    def page_not_found(e):
        return render_template('404.html'), 404
    
  • 뷰 함수가 반환 응답 개체 :

    • make_sense () 1-3 허용 가능한 파라미터 및 반환 응답 객체 :

      from flask import make_response
      
      @app.route('/')
      def index():
          response = make_response('This document carries a cookie!')
          response.set_cookie('answer','42')
          return response
      
  • 리디렉션 (302) : 리디렉션 ()

    from flask import redirect
    
    @app.route('/')
    def index():
        return redirect('http://www.xxxx.com')
    
  • 오류 처리 : 중단 ()

    #如果URL中动态参数id对应的用户不存在,就返回404
    from flask import abort
    
    @app.route('/user/<id>')
    def get_user(id):
        user = load_user(id)
        if not user:
            abort(404)
        return 'Hello, %s' %user,name
    

     

 

추천

출처www.cnblogs.com/localhost-ha/p/12436175.html