본문 바로가기

Web developer/Flask9

[Flask] Blueprint Flask를 이용해 어플리케이션을 만들 때 한 파일에서 객체를 app으로 선언하고 app.route 데코레이터로 매핑될 함수를 쉽게 지정한다. 그러나 app.route 데코레이터는 create_app()이 실행된 이후에만 존재할 수 있다. 그리고 app.route 데코레이터는 호출될 함수들을 파일 한 곳에서 관리해야 한다. 그렇게 되면 프로젝트의 규모가 커지고 호출될 함수가 많아질수록, 한 곳에서 함수 전부를 관리하기 어렵게 된다. Blueprint는 위와 같은 문제를 해결하기 위해 함수를 여러 곳으로 확장하고 분산시킬 수 있게 만든다. Blueprint의 간단한 예제로, 아래 main1.py의 파일을 두개로 분리하려고 한다. main1.py from flask import Flask app = Flas.. 2020. 10. 24.
[Flask] 대규모 Application 구조 대규모 응용 프로그램의 폴더 구조는 아래와 같다. |-flasky |-app/ |-templates/ |-static/ |-main/ |-__init__.py |-errors.py |-forms.py |-views.py |-__init__.py |-email.py |-models.py |-migrations/ |-tests/ |-__init__.py |-test*.py |-venv/ |-requirements.txt |-config.py |-manage.py - 플라스크 어플리케이션은 일반적으로 app패키지 안에 존재한다. - migrations 폴더는 데이터베이스 마이그레이션 스크립트를 포함하고 있다. 여기서 데이터베이스 마이그레이션이란, 개별 SQL파일을 MySQL콘솔 등에서 직접 실행하지 않고, 프.. 2020. 10. 24.
[Flask] SQLAlchemy #2 HTML파일 (ex0612.html) {% extends "mybase.html" %} {% block title %} flask Form {% endblock %} {% blockbody %} {% if name %} 안녕하세요, {{name}} {% else %} 안녕하세요, 처음 방문이시군요! {% endif %} {% if not known %} 만나서 반가워요 {% else %} 다시 만나서 반가워요 {% endif %} {{form.hidden_tag()}} {{form.name.label}}:{{form.name}} {{form.submit()}} {% endblock %} Python 파일 (ex0612.py) from flask_sqlalchemy import SQLAlchemy from.. 2020. 10. 14.
[Flask] SQLAlchemy #1 hello.py from flask import Flask import os from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) basedir = os.path.abspath(os.path.dirname(__file__)) #파일의 절대경로 저장 db_url = 'sqlite:///' + os.path.join(basedir, 'data.sqlite') app.config['SQLALCHEMY_DATABASE_URI'] = db_url app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False db = SQLAlchemy(app) #SQLAlchemy를 인스턴스화 class User(db.Model): __ta.. 2020. 10. 13.