ホームページ >バックエンド開発 >Python チュートリアル >Python と FastAPI を使用した Word ドキュメント作成の自動化 (python-docx-template を使用)

Python と FastAPI を使用した Word ドキュメント作成の自動化 (python-docx-template を使用)

Susan Sarandon
Susan Sarandonオリジナル
2025-01-08 07:13:41911ブラウズ

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

動的なコンテンツを含む Word ドキュメントを作成し、プロセスを自動化する必要がありますか? Python は python-docx-template ライブラリを使用して効率的なソリューションを提供します。 このチュートリアルでは、手動更新の必要性を排除して 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

フセイン・カンタルシをフォローしてください:

プレースホルダー画像 URL を実際の画像 URL に置き換えることを忘れないでください。 また、このコードでは、元の例と同様に、必要なデータ モデル (Company、BankInformation、Item、VatInformation、InvoiceContext) が定義されていることを前提としています。

以上がPython と FastAPI を使用した Word ドキュメント作成の自動化 (python-docx-template を使用)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。