Rumah > pembangunan bahagian belakang > Tutorial Python > Mengautomasikan Penciptaan Dokumen Word dengan Python dan FastAPI (Menggunakan python-docx-template)

Mengautomasikan Penciptaan Dokumen Word dengan Python dan FastAPI (Menggunakan python-docx-template)

Susan Sarandon
Lepaskan: 2025-01-08 07:13:41
asal
961 orang telah melayarinya

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

Perlu mencipta dokumen Word dengan kandungan dinamik dan mengautomasikan proses? Python, dengan perpustakaan python-docx-template, menawarkan penyelesaian yang cekap. Tutorial ini menunjukkan cara menjana dokumen Word secara dinamik, menghapuskan keperluan untuk kemas kini manual.

Mari kita menggambarkan dengan contoh invois. Mengemas kini data invois secara manual adalah membosankan dan tidak praktikal apabila berurusan dengan data daripada API. Penjanaan dinamik menyelesaikan masalah ini.

Pertimbangkan templat dokumen Word:

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

Butiran syarikat dan senarai item kerap berubah. Penjanaan dinamik mengendalikan kebolehubahan ini.

Untuk mencapai ini, ubah suai templat untuk keserasian Jinja2. Ciri templat Jinja2 (pemarahan bersyarat, gelung) membolehkan populasi dinamik berdasarkan data yang disediakan.

Templat yang serasi dengan Jinja2 kelihatan seperti ini:

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

Sintaks Jinja2 (cth., {% if %} dan {% for %}) mungkin kelihatan rumit pada mulanya, tetapi ia memberikan kawalan yang kuat. Ungkapan dalam {{ }} mewakili pembolehubah yang diisi pada masa jalan. Sebagai contoh, {% if items %} menyemak sama ada pembolehubah items wujud sebelum memaparkan baris jadual. {% for item in items %} berulang melalui senarai items, menjana satu baris untuk setiap item.

Sekarang, mari buat pelayan FastAPI untuk memaparkan templat menggunakan Python.

  1. Buat persekitaran maya:

    <code class="language-bash">pip3 install virtualenv
    virtualenv -p python3 venv
    source venv/bin/activate</code>
    Salin selepas log masuk
    Salin selepas log masuk
  2. Pasang perpustakaan:

    <code class="language-bash">pip install "fastapi[standard]" docx docxtpl pydantic requests</code>
    Salin selepas log masuk
  3. Buat main.py: Mulakan dengan titik akhir FastAPI asas:

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

    Mengakses localhost:8000 harus kembali {"Hello": "World"}.

  4. Import templat Jinja2: Letakkan invoice_tpl.docx ubah suai anda dalam akar projek.

  5. Tingkatkan main.py: Kod berikut mengendalikan pemaparan templat, pengambilan imej dan pengiraan jumlah:

    <code class="language-bash">pip3 install virtualenv
    virtualenv -p python3 venv
    source venv/bin/activate</code>
    Salin selepas log masuk
    Salin selepas log masuk
  6. Uji titik akhir: Hantar muatan JSON (serupa dengan contoh dalam teks asal) ke titik akhir /.

  7. Contoh output: (Imej daripada teks asal akan disertakan di sini)

Kesimpulan: Tutorial ini menunjukkan penjanaan dokumen Word dinamik menggunakan python-docx-template dan FastAPI. Gabungan Jinja2 dan FastAPI mencipta sistem yang fleksibel untuk mengautomasikan penciptaan dokumen. Catatan blog akan datang (Bahagian 2) akan merangkumi penjanaan PDF.

Repositori: https://www.php.cn/link/1df146af0948a68b1342ce39907668fe

Ikuti Husein Kantarci:

Ingat untuk menggantikan URL imej pemegang tempat dengan URL imej sebenar. Kod ini juga menganggap anda mempunyai model data yang diperlukan ditakrifkan (Syarikat, BankInformation, Item, VatInformation, InvoiceContext) seperti dalam contoh asal.

Atas ialah kandungan terperinci Mengautomasikan Penciptaan Dokumen Word dengan Python dan FastAPI (Menggunakan python-docx-template). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan