본문 바로가기
취미부자/취미1_코딩

패스트캠퍼스 챌린지 24일차 / flask 기초

by 연습중인최 2021. 11. 24.
반응형

 


--오늘의 학습 범위--

 

Part 10. Flask 기초  / Ch 02. 플라스크 기초

CH02_03. 플라스크 어플리케이션 팩토리


어후...어렵다... 따라 치기만으로도 벅차..ㄷㄷㄷ 외운다고 되는 것도 아닌 것 같으니 일단 흐름을 파악하는 것부터 시작하자.


-create_app 작성 및 이해

 

**공식문서 참고: https://flask.palletsprojects.com/en/1.1.x/patterns/appfactories/

 

Application Factories — Flask Documentation (1.1.x)

Application Factories If you are already using packages and blueprints for your application (Modular Applications with Blueprints) there are a couple of really nice ways to further improve the experience. A common pattern is creating the application object

flask.palletsprojects.com

 

패턴 참고

1. __init.py 파일 생성 : 디렉터리 모듈화 시킴

실습코드

from flask import flask

app = Flask(__name__)

def create_app():
    print('run:create_app()')
    app = Flask(__name__)
    
    @app.route('/')
    def index():
         return 'Hello, World!'
   
    return app

 

-순환참조 장애 : 파이썬 파일 양쪽에서 서로 import할 떄 생기는 문제

 /순환참조 장애를 피하기 위해서 팩토리 패턴이 생겨남.

 

<실습 코드>

a.py

import b

def print_a():
    print('a')
    b.print_b()

print_a()

b.py

import a

def print_b():
    print('b')

def print_c():
    print('c')
    a.print_a()

: python b.py 실행을 하면 찍은게 없는데도  a,b가 찍힌다.

import를 할 때 그 순간 벌써 a.py가 import 되고, 서로 각자의 파일에서 무한히 서로 import가 된다.

 

-이것을 해결하기 위해!!

파이썬이 실행될 때

import 부분을 함수 안에 넣어서 런타임 될때 import 되도록!!

 

b.py 수정

def print_b():
    print('b')

def print_c():
    import a
    print('c')
    a.print_a()

flask --help  : 여러가지 command가 있음

 

// routes  Show the routes for the app.   :   작업했던 index 페이지와 기본 제공되는 static path가 나옴
// run     Run a development server.       
// shell   Run a shell in the app context.    : 여러가지 명령어 처 볼수 있음.

 


 

 

 

 

 

 

 

 

 

 

 

 

link : 

https://bit.ly/3FVdhDa

 

수강료 100% 환급 챌린지 | 패스트캠퍼스

딱 5일간 진행되는 환급챌린지로 수강료 100% 환급받으세요! 더 늦기전에 자기계발 막차 탑승!

fastcampus.co.kr

 

 

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.

반응형

댓글