푸터 콘텐츠로 바로가기
PYTHON 도움말

Flask Python (개발자를 위한 작동 방식)

Flask 는 개발자가 효율적이고 확장 가능한 복잡한 웹 애플리케이션을 신속하게 만들 수 있도록 설계된 다재다능하고 가벼운 Python 웹 프레임워크입니다. 이 플랫폼은 신속한 개발에 최적화된 다양한 도구와 라이브러리를 제공합니다. Python은 단순함과 미니멀리즘으로 유명하며, 덕분에 Python을 이용한 웹 개발 환경을 쉽게 시작할 수 있습니다. 이 글에서는 Flask Python 패키지와 그 기능에 대해 살펴보고, 이어서 IronPDF Python 패키지에 대해서도 간략하게 다루겠습니다.

시작하기

Flask는 Python용으로 개발된 강력하고 유연한 마이크로 웹 서버 프레임워크입니다. 규모가 작은 웹 애플리케이션부터 복잡한 대규모 웹 애플리케이션까지 모두에 적합합니다. Flask의 주요 기능은 다음과 같습니다.

  1. 가볍고 미니멀한 디자인: Flask는 웹 개발에 필수적인 구성 요소(라우팅, 요청 처리, 템플릿, 테스트 등)를 제공하는 경량 웹 애플리케이션 프레임워크로, 의존성이 매우 적습니다.

    • 엄격한 구조를 강요하지 않으므로 개발자가 원하는 방식으로 애플리케이션을 구축할 수 있습니다.
  2. 라우팅 시스템: Flask는 URL을 뷰 함수에 매핑하는 라우팅 시스템을 제공합니다.

    • 다양한 경로를 쉽게 정의하고 HTTP 메서드(GET, POST 등)를 처리할 수 있습니다.
  3. 템플릿 상속 엔진(Jinja2):

    • Flask에는 강력한 템플릿 엔진인 Jinja2가 포함되어 있습니다.
    • Jinja2는 템플릿과 데이터를 결합하여 동적인 HTML 페이지를 생성하는 데 도움을 줍니다.
  4. 확장성 및 유연성:
    • Flask를 사용하면 소규모로 시작하여 필요에 따라 규모를 확장할 수 있습니다.
    • 기본적인 웹 페이지부터 복잡한 애플리케이션까지 모든 것에 적합합니다.

Flask 프레임워크의 주요 특징

  1. 라우팅: Flask는 데코레이터를 사용하여 URL 경로를 정의하므로 개발자가 URL을 Python 함수에 쉽게 매핑할 수 있어 HTML을 사용하여 정적 파일을 쉽게 제공할 수 있습니다.
  2. 템플릿: Flask는 Jinja2 템플릿 엔진을 통합하여 개발자가 Python 코드에서 HTML 템플릿으로 변수를 전달함으로써 동적인 HTML 및 CSS 페이지를 렌더링할 수 있도록 합니다.
  3. 개발 서버: Flask에는 애플리케이션을 로컬에서 편리하게 테스트하고 디버깅할 수 있는 내장 개발 서버가 있습니다.
  4. 확장 기능: Flask는 모듈식 설계를 갖추고 있으며, 필요에 따라 애플리케이션에 기능을 추가할 수 있는 다양한 확장 기능(예: 데이터베이스 통합을 위한 SQLAlchemy, 폼 처리를 위한 Flask-WTF, REST API 구축을 위한 Flask-RESTful)을 제공합니다.
  5. HTTP 요청 처리: Flask는 HTTP 요청(GET, POST, PUT, DELETE 등) 처리를 간소화하고 폼 입력, 쿠키, 헤더와 같은 요청 데이터에 접근합니다.
  6. URL 생성: Flask는 URL을 동적으로 생성하는 유틸리티를 제공하여 웹 애플리케이션의 유연성과 확장성을 유지하는 데 도움을 줍니다.
  7. 통합: Flask는 다른 라이브러리 및 프레임워크와 통합될 수 있어 다양한 애플리케이션 요구 사항 및 환경에 맞춰 활용할 수 있습니다.

예시: 기본적인 Flask 프로젝트 생성

파일 app.py를 생성합니다. Flask를 설치하려면 아래 명령어를 실행했는지 확인하세요.

pip install flask
pip install flask
SHELL

그런 다음 app.py에 다음 코드를 추가하세요.

# Importing the Flask class from the flask module
from flask import Flask 

# Creating an instance of the Flask class for the web application
app = Flask(__name__)

# Defining a route for the root URL ('/')
@app.route('/')
def index():
    # Function that handles the root URL route, returns a string as response
    return 'Awesome IronPDF'

# Running the application
if __name__ == '__main__':
    # Debug mode is enabled for easier troubleshooting
    app.run(debug=True)
# Importing the Flask class from the flask module
from flask import Flask 

# Creating an instance of the Flask class for the web application
app = Flask(__name__)

# Defining a route for the root URL ('/')
@app.route('/')
def index():
    # Function that handles the root URL route, returns a string as response
    return 'Awesome IronPDF'

# Running the application
if __name__ == '__main__':
    # Debug mode is enabled for easier troubleshooting
    app.run(debug=True)
PYTHON

아래에 표시된 대로 app.py라는 Python 파일을 사용하여 코드를 실행합니다.

python app.py
python app.py
SHELL

출력

플라스크 Python(개발자를 위한 작동 방식): 그림 1 - Flask 출력

IronPDF 소개합니다

플라스크 Python(개발자를 위한 작동 방식): 그림 2 - IronPDF: Python PDF 라이브러리

IronPDF 는 HTML, CSS, 이미지 및 JavaScript 사용하여 PDF 문서를 생성, 편집 및 서명하도록 설계된 강력한 Python 라이브러리입니다. 메모리 사용량이 최소화되면서 뛰어난 성능을 발휘합니다. 주요 특징은 다음과 같습니다.

  • HTML을 PDF로 변환: HTML 파일, HTML 문자열 및 URL을 PDF 문서로 변환합니다. 예를 들어 Chrome PDF 렌더러를 사용하여 웹페이지를 렌더링할 수 있습니다.
  • 크로스 플랫폼 지원: Windows, Mac, Linux 및 클라우드 플랫폼에서 Python 3 이상 버전과 호환됩니다. IronPDF 는 .NET, Java, Python 및 Node.js 환경에서도 사용할 수 있습니다.
  • 편집 및 서명: PDF 속성을 사용자 지정하고, 암호 및 권한으로 보안을 강화하고, 디지털 서명을 적용할 수 있습니다.
  • 페이지 템플릿 및 설정: 머리글, 바닥글, 페이지 번호, 조정 가능한 여백, 사용자 지정 용지 크기 및 반응형 레이아웃을 사용하여 PDF를 맞춤 설정할 수 있습니다.
  • 표준 준수: PDF/A 및 PDF/UA와 같은 PDF 표준을 준수하고, UTF-8 문자 인코딩을 지원하며, 이미지, CSS 스타일시트, 글꼴과 같은 자산을 원활하게 처리합니다.

설치

pip install ironpdf

IronPDF 와 Flask를 사용하여 PDF 문서를 생성합니다.

필수 조건

  1. Visual Studio Code가 코드 편집기로 설치되어 있는지 확인하십시오.
  2. Python 버전 3이 설치되어 있습니다.

우선 스크립트를 추가할 Python 파일을 만들어 보겠습니다.

Visual Studio Code를 열고 파일 flaskDemo.py를 만듭니다.

필요한 라이브러리를 설치하세요:

pip install flask
pip install ironpdf
pip install flask
pip install ironpdf
SHELL

다음으로 아래 코드를 추가하여 IronPDF 및 Flask Python 패키지의 사용법을 보여주세요.

# Import necessary libraries
from flask import Flask, request, send_file
from ironpdf import *

# Apply your IronPDF license key
License.LicenseKey = "Your key"

# Create an instance of the Flask class
app = Flask(__name__)

# Define a route for the root URL
@app.route('/')
def index():
    return 'Awesome IronPDF'

# Define a route for generating PDFs
@app.route('/pdf')
def pdf():
    # Retrieve 'g1' and 'g2' parameters from the request's query string
    g1 = request.args.get('g1')
    g2 = request.args.get('g2')

    # Create an instance of the ChromePdfRenderer
    renderer = ChromePdfRenderer()

    # Generate HTML content dynamically based on user inputs
    content = "<h1>Document Generated using IronPDF with Flask GET</h1>"
    content += "<p> Demonstrate PDF generation using User Inputs</p>"
    content += f"<p>Greetings from: {g1}</p>"
    content += f"<p>And Greetings from: {g2}</p>"

    # Render the HTML as a PDF
    pdf = renderer.RenderHtmlAsPdf(content)

    # Save PDF to a file
    pdf.SaveAs("flaskIronPDF.pdf")

    # Set headers to display the PDF inline in the browser
    headers = {
        "Content-Disposition": "inline; filename=sample.pdf"
    }

    # Return the generated PDF to be viewed in the browser
    return send_file('flaskIronPDF.pdf')

# Run the Flask web application
if __name__ == '__main__':
    app.run(debug=True)
# Import necessary libraries
from flask import Flask, request, send_file
from ironpdf import *

# Apply your IronPDF license key
License.LicenseKey = "Your key"

# Create an instance of the Flask class
app = Flask(__name__)

# Define a route for the root URL
@app.route('/')
def index():
    return 'Awesome IronPDF'

# Define a route for generating PDFs
@app.route('/pdf')
def pdf():
    # Retrieve 'g1' and 'g2' parameters from the request's query string
    g1 = request.args.get('g1')
    g2 = request.args.get('g2')

    # Create an instance of the ChromePdfRenderer
    renderer = ChromePdfRenderer()

    # Generate HTML content dynamically based on user inputs
    content = "<h1>Document Generated using IronPDF with Flask GET</h1>"
    content += "<p> Demonstrate PDF generation using User Inputs</p>"
    content += f"<p>Greetings from: {g1}</p>"
    content += f"<p>And Greetings from: {g2}</p>"

    # Render the HTML as a PDF
    pdf = renderer.RenderHtmlAsPdf(content)

    # Save PDF to a file
    pdf.SaveAs("flaskIronPDF.pdf")

    # Set headers to display the PDF inline in the browser
    headers = {
        "Content-Disposition": "inline; filename=sample.pdf"
    }

    # Return the generated PDF to be viewed in the browser
    return send_file('flaskIronPDF.pdf')

# Run the Flask web application
if __name__ == '__main__':
    app.run(debug=True)
PYTHON

코드 설명

이 코드 스니펫은 사용자 입력을 URL 매개변수(g1g2)를 통해 PDF 문서를 생성하고 서비스하는 Flask 애플리케이션을 IronPDF를 사용하여 보여줍니다.

  1. 수입:

    • from flask import Flask, request, send_file: 웹 앱 생성 및 요청 처리를 위한 필수 Flask 모듈을 가져옵니다.
    • from ironpdf import *: PDF 생성을 위한 IronPDF 기능을 가져옵니다.
  2. 라이선스 키 설정:

    • License.LicenseKey = "Your key": IronPDF 기능을 위한 라이센스 키를 적용합니다.
  3. Flask 애플리케이션 설정:

    • app = Flask(__name__): Flask 애플리케이션 인스턴스를 생성합니다.
  4. 경로 정의:

    • @app.route('/'): 루트 URL('/')에 대한 경로를 정의합니다. 해당 함수에 접근하면 'Awesome IronPDF'라는 문자열이 반환됩니다.
    • @app.route('/pdf'): '/pdf'에 대한 경로를 정의합니다. 접근할 때 사용자 입력(g1g2)을 기반으로 PDF 문서를 생성합니다.
  5. PDF 생성:
    pdf() 함수 내부:

    • g1g2의 값을 요청 쿼리 매개변수를 사용하여 request.args.get()로부터 가져옵니다.
    • IronPDF에서 ChromePdfRenderer() 인스턴스를 초기화합니다.
    • 사용자 입력에 따라 동적으로 생성된 헤더와 문단을 포함한 HTML 문자열(content)을 구성합니다.
    • renderer.RenderHtmlAsPdf(content)를 사용하여 HTML 내용을 PDF로 변환합니다.
    • PDF 문서를 'flaskIronPDF.pdf'라는 이름으로 로컬에 저장합니다.
  6. PDF 파일 전송:

    • 응답 헤더를 준비하여 파일이 브라우저에서 인라인으로 표시되도록 지정합니다("Content-Disposition": "inline; filename=sample.pdf").
    • send_file('flaskIronPDF.pdf')를 사용하여 생성된 PDF 파일을 사용자의 브라우저로 다시 전송합니다.
  7. 애플리케이션 실행:
    • if __name__ == '__main__': app.run(debug=True): 디버그 모드에서 Flask 애플리케이션을 시작하여 쉽게 디버깅 및 개발할 수 있도록 합니다.

이 Flask 애플리케이션은 웹 애플리케이션 환경 내에서 PDF 생성을 위해 IronPDF 통합하는 방법을 보여줍니다. URL 매개변수(g1g2)를 통해 사용자 입력에 따라 PDF를 동적으로 생성하고 생성된 PDF 파일을 사용자의 브라우저로 반환합니다. 이 설정은 웹 요청에서 직접 보고서, 송장 또는 기타 동적으로 생성되는 문서를 생성하는 데 유용합니다.

PDF 출력

플라스크 Python(개발자를 위한 작동 방식): 그림 3 - PDF 출력

IronPDF 라이선스

IronPDF Python 라이선스 키를 사용하여 실행됩니다. IronPDF for Python은 사용자가 구매 전에 다양한 기능을 확인해 볼 수 있도록 무료 평가판 라이선스 키를 제공합니다.

IronPDF 패키지를 사용하기 전에 스크립트 시작 부분에 라이선스 키를 배치하십시오.

from ironpdf import * 
# Apply your license key
License.LicenseKey = "key"
from ironpdf import * 
# Apply your license key
License.LicenseKey = "key"
PYTHON

결론

Flask Python 패키지는 웹 애플리케이션 개발에 사용됩니다. 웹 서버 생성과 HTTP 요청 처리를 간소화하여 API 및 웹 서비스 구축에 널리 사용됩니다. Flask의 가벼운 특성과 유연성 덕분에 개발자는 애플리케이션을 빠르게 프로토타입화하고 확장할 수 있습니다. 다양한 확장 기능 생태계를 통해 인증, 데이터베이스 통합 등과 같은 작업을 지원하여 기능을 향상시킵니다. Flask는 단순해 보이지만 소규모 프로젝트부터 크고 복잡한 애플리케이션까지 모두에 강력한 성능을 발휘합니다. Flask는 단순성, 유연성 및 강력한 기능 덕분에 웹 개발에 탁월한 선택입니다.

IronPDF 는 PDF 문서를 프로그래밍 방식으로 생성, 편집 및 조작하기 위해 설계된 Python 라이브러리입니다. 이 프로그램은 PDF 파일을 처음부터 생성하거나, HTML을 PDF로 변환하거나, PDF를 병합 또는 분할하거나, 주석 및 워터마크를 추가하거나, PDF에서 텍스트 또는 이미지를 추출하는 등의 기능을 제공합니다. IronPDF Python 애플리케이션에서 PDF 처리를 간소화하는 것을 목표로 하며, 문서 레이아웃, 글꼴, 색상 및 기타 스타일 요소를 관리하는 도구를 제공합니다. 이 라이브러리는 웹 애플리케이션의 문서 생성부터 자동 보고서 생성 및 문서 관리 시스템에 이르기까지 다양한 작업에 유용합니다.

이 두 라이브러리를 함께 사용하면 사용자는 PDF 생성 기능을 갖춘 웹 앱을 쉽게 개발할 수 있습니다.

커티스 차우
기술 문서 작성자

커티스 차우는 칼턴 대학교에서 컴퓨터 과학 학사 학위를 취득했으며, Node.js, TypeScript, JavaScript, React를 전문으로 하는 프론트엔드 개발자입니다. 직관적이고 미적으로 뛰어난 사용자 인터페이스를 만드는 데 열정을 가진 그는 최신 프레임워크를 활용하고, 잘 구성되고 시각적으로 매력적인 매뉴얼을 제작하는 것을 즐깁니다.

커티스는 개발 분야 외에도 사물 인터넷(IoT)에 깊은 관심을 가지고 있으며, 하드웨어와 소프트웨어를 통합하는 혁신적인 방법을 연구합니다. 여가 시간에는 게임을 즐기거나 디스코드 봇을 만들면서 기술에 대한 애정과 창의성을 결합합니다.

아이언 서포트 팀

저희는 주 5일, 24시간 온라인으로 운영합니다.
채팅
이메일
전화해