>백엔드 개발 >파이썬 튜토리얼 >Python 및 FastAPI를 사용하여 Word 문서 생성 자동화(python-docx-template 사용)

Python 및 FastAPI를 사용하여 Word 문서 생성 자동화(python-docx-template 사용)

Susan Sarandon
Susan Sarandon원래의
2025-01-08 07:13:41962검색

Automating Word Document Creation with Python and FastAPI (Using python-docx-template)

동적 콘텐츠가 포함된 Word 문서를 만들고 프로세스를 자동화해야 합니까? python-docx-template 라이브러리를 갖춘 Python은 효율적인 솔루션을 제공합니다. 이 튜토리얼에서는 수동으로 업데이트할 필요 없이 Word 문서를 동적으로 생성하는 방법을 보여줍니다.

송장 예시를 들어 설명해 보겠습니다. API의 데이터를 처리할 때 송장 데이터를 수동으로 업데이트하는 것은 지루하고 비실용적입니다. 다이내믹 제너레이션이 이를 해결해 드립니다.

Word 문서 템플릿을 고려해 보세요.

Automating Word Document Creation with Python and FastAPI (Using python-docx-template)

회사 세부정보 및 품목 목록은 자주 변경됩니다. 동적 생성은 이러한 가변성을 처리합니다.

이를 달성하려면 Jinja2 호환성을 위해 템플릿을 수정하세요. Jinja2의 템플릿 기능(조건부 렌더링, 반복)은 제공된 데이터를 기반으로 동적 채우기를 가능하게 합니다.

Jinja2 호환 템플릿은 다음과 같습니다.

Automating Word Document Creation with Python and FastAPI (Using python-docx-template)

Jinja2 구문(예: {% if %}{% for %})은 처음에는 복잡해 보일 수 있지만 강력한 제어 기능을 제공합니다. {{ }} 내의 표현식은 런타임 시 채워지는 변수를 나타냅니다. 예를 들어 {% if items %}은 테이블 행을 렌더링하기 전에 items 변수가 존재하는지 확인합니다. {% for item in items %}items 목록을 반복하여 각 항목에 대한 행을 생성합니다.

이제 Python을 사용하여 템플릿을 렌더링하기 위한 FastAPI 서버를 만들어 보겠습니다.

  1. 가상 환경 만들기:

    <code class="language-bash">pip3 install virtualenv
    virtualenv -p python3 venv
    source venv/bin/activate</code>
  2. 라이브러리 설치:

    <code class="language-bash">pip install "fastapi[standard]" docx docxtpl pydantic requests</code>
  3. 생성 main.py: 기본 FastAPI 엔드포인트로 시작:

    <code class="language-python">from fastapi import FastAPI
    app = FastAPI()
    @app.get("/")
    def read_root():
        return {"Hello": "World"}</code>

    localhost:8000에 액세스하면 {"Hello": "World"}이 반환되어야 합니다.

  4. Jinja2 템플릿 가져오기: 수정된 invoice_tpl.docx을 프로젝트 루트에 배치하세요.

  5. Enhance main.py: 다음 코드는 템플릿 렌더링, 이미지 가져오기 및 총액 계산을 처리합니다.

    <code class="language-bash">pip3 install virtualenv
    virtualenv -p python3 venv
    source venv/bin/activate</code>
  6. 엔드포인트 테스트: JSON 페이로드(원본 텍스트의 예와 유사)를 / 엔드포인트

    에 보냅니다.
  7. 출력 예: (원본 텍스트의 이미지가 여기에 포함됩니다)

결론: 이 튜토리얼에서는 python-docx-template 및 FastAPI를 사용한 동적 Word 문서 생성을 보여줍니다. Jinja2와 FastAPI의 조합은 문서 생성을 자동화하는 유연한 시스템을 만듭니다. 향후 블로그 게시물(2부)에서 PDF 생성을 다룰 예정입니다.

저장소: https://www.php.cn/link/1df146af0948a68b1342ce39907668fe

Husein Kantarci 팔로우:

자리 표시자 이미지 URL을 실제 이미지 URL로 바꿔야 합니다. 또한 코드에서는 원래 예제와 같이 필요한 데이터 모델(Company, BankInformation, Item, VatInformation, InvoiceContext)이 정의되어 있다고 가정합니다.

위 내용은 Python 및 FastAPI를 사용하여 Word 문서 생성 자동화(python-docx-template 사용)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:일일 코딩 여정)다음 기사:일일 코딩 여정)