|
15 | 15 | <a href="https://github.com/hasansezertasan/awesome-python-html/releases" title="Best-of Updates"><img src="https://img.shields.io/github/release-date/hasansezertasan/awesome-python-html?color=green&label=updated"></a> |
16 | 16 | </p> |
17 | 17 |
|
18 | | -This curated list contains 71 awesome open-source projects with a total of 13K stars grouped into 4 categories. All projects are ranked by a project-quality score, which is calculated based on various metrics automatically collected from GitHub and different package managers. If you like to add or update projects, feel free to open an [issue](https://github.com/hasansezertasan/awesome-python-html/issues/new/choose), submit a [pull request](https://github.com/hasansezertasan/awesome-python-html/pulls), or directly edit the [projects.yaml](https://github.com/hasansezertasan/awesome-python-html/edit/main/projects.yaml). Contributions are very welcome! |
| 18 | +This curated list contains 71 awesome open-source projects with a total of 11K stars grouped into 4 categories. All projects are ranked by a project-quality score, which is calculated based on various metrics automatically collected from GitHub and different package managers. If you like to add or update projects, feel free to open an [issue](https://github.com/hasansezertasan/awesome-python-html/issues/new/choose), submit a [pull request](https://github.com/hasansezertasan/awesome-python-html/pulls), or directly edit the [projects.yaml](https://github.com/hasansezertasan/awesome-python-html/edit/main/projects.yaml). Contributions are very welcome! |
19 | 19 |
|
20 | 20 | > 🧙♂️ Discover other [best-of lists](https://best-of.org) or [create your own](https://github.com/best-of-lists/best-of/blob/main/create-best-of-list.md). |
21 | 21 |
|
@@ -69,76 +69,89 @@ _If you can think of a more appropriate category for the items below, PRs welcom |
69 | 69 |
|
70 | 70 | _Projects for generating HTML_ |
71 | 71 |
|
72 | | -<details><summary><b><a href="https://github.com/lxml/lxml">lxml</a></b> (🥇32 · ⭐ 3K · 📈) - The lxml XML toolkit for Python. <code><a href="http://bit.ly/3aKzpTv">BSD-3</a></code></summary> |
| 72 | +<details><summary><b><a href="https://github.com/Knio/dominate">dominate</a></b> (🥇23 · ⭐ 1.8K) - Dominate is a Python library for creating and manipulating HTML documents..</summary> |
73 | 73 |
|
74 | | -- [GitHub](https://github.com/lxml/lxml) (👨💻 180 · 🔀 590 · 📥 12K · 📦 600K · ⏱️ 26.03.2026): |
| 74 | + |
| 75 | +--- |
| 76 | + |
| 77 | +<br> |
| 78 | + |
| 79 | + _1 projects are hidden because they don't fulfill the minimal requirements._ |
| 80 | + |
| 81 | +--- |
| 82 | +</details> |
| 83 | +<details><summary><b><a href="https://github.com/byteface/domonic">domonic</a></b> (🥇18 · ⭐ 140 · 📈) - Create HTML with python 3 using a standard DOM API. Includes a python port..</summary> |
| 84 | + |
| 85 | + |
| 86 | +--- |
| 87 | + |
| 88 | +<br> |
| 89 | + |
| 90 | + _1 projects are hidden because they don't fulfill the minimal requirements._ |
| 91 | + |
| 92 | +--- |
| 93 | +</details> |
| 94 | +<details><summary><b><a href="https://github.com/lxml/lxml">lxml</a></b> (🥇33 · ⭐ 3K · 📈) - The lxml XML toolkit for Python. <code><a href="http://bit.ly/3aKzpTv">BSD-3</a></code></summary> |
| 95 | + |
| 96 | +- [GitHub](https://github.com/lxml/lxml) (👨💻 180 · 🔀 590 · 📥 11K · 📦 610K · ⏱️ 09.04.2026): |
75 | 97 |
|
76 | 98 | ``` |
77 | 99 | git clone https://github.com/lxml/lxml |
78 | 100 | ``` |
79 | 101 | </details> |
80 | | -<details><summary><b><a href="https://github.com/pelme/htpy">htpy</a></b> (🥇18 · ⭐ 440) - Generate HTML in Python. <code><a href="http://bit.ly/34MBwT8">MIT</a></code></summary> |
| 102 | +<details><summary><b><a href="https://github.com/pelme/htpy">htpy</a></b> (🥇18 · ⭐ 450) - Generate HTML in Python. <code><a href="http://bit.ly/34MBwT8">MIT</a></code></summary> |
81 | 103 |
|
82 | 104 | - [GitHub](https://github.com/pelme/htpy) (👨💻 17 · 🔀 29 · 📦 73 · 📋 41 - 12% open · ⏱️ 07.12.2025): |
83 | 105 |
|
84 | 106 | ``` |
85 | 107 | git clone https://github.com/pelme/htpy |
86 | 108 | ``` |
87 | 109 | </details> |
88 | | -<details><summary><b><a href="https://github.com/getludic/ludic">ludic</a></b> (🥇16 · ⭐ 890) - A type-safe HTML template engine for Python. Build dynamic web pages using.. <code><a href="http://bit.ly/34MBwT8">MIT</a></code></summary> |
| 110 | +<details><summary><b><a href="https://github.com/getludic/ludic">ludic</a></b> (🥇15 · ⭐ 890 · 📉) - A type-safe HTML template engine for Python. Build dynamic web pages.. <code><a href="http://bit.ly/34MBwT8">MIT</a></code></summary> |
89 | 111 |
|
90 | | -- [GitHub](https://github.com/getludic/ludic) (👨💻 10 · 🔀 20 · 📥 460 · 📦 15 · 📋 32 - 53% open · ⏱️ 13.02.2026): |
| 112 | +- [GitHub](https://github.com/getludic/ludic) (👨💻 10 · 🔀 20 · 📥 460 · 📦 15 · 📋 33 - 54% open · ⏱️ 13.02.2026): |
91 | 113 |
|
92 | 114 | ``` |
93 | 115 | git clone https://github.com/paveldedik/ludic |
94 | 116 | ``` |
95 | 117 | </details> |
96 | | -<details><summary><b><a href="https://github.com/codelv/enaml-web">enaml-web</a></b> (🥇14 · ⭐ 110 · 💤) - Build interactive websites with enaml. <code><a href="http://bit.ly/34MBwT8">MIT</a></code></summary> |
97 | | - |
98 | | -- [GitHub](https://github.com/codelv/enaml-web) (👨💻 6 · 🔀 18 · 📦 14 · 📋 33 - 21% open · ⏱️ 19.03.2025): |
99 | | - |
100 | | - ``` |
101 | | - git clone https://github.com/codelv/enaml-web |
102 | | - ``` |
103 | | -</details> |
104 | | -<details><summary>Show 58 hidden projects...</summary> |
| 118 | +<details><summary>Show 57 hidden projects...</summary> |
105 | 119 |
|
106 | | -- <b><a href="https://github.com/Knio/dominate">dominate</a></b> (🥇23 · ⭐ 1.8K · 💀) - Dominate is a Python library for creating and manipulating HTML documents.. |
107 | | -- <b><a href="https://github.com/byteface/domonic">domonic</a></b> (🥇15 · ⭐ 140 · 💀) - Create HTML with python 3 using a standard DOM API. Includes a python port.. |
108 | 120 | - <b><a href="https://github.com/volfpeter/markyp">markyp</a></b> (🥈12 · ⭐ 40 · 💤) - Python 3 tools for creating markup documents. |
109 | 121 | - <b><a href="https://github.com/Hrabal/TemPy">TemPy</a></b> (🥇16 · ⭐ 140 · 💀) - Python Object Oriented Html Templating System. <code><a href="http://bit.ly/3nYMfla">Apache-2</a></code> |
110 | | -- <b><a href="https://github.com/tvst/htbuilder">htbuilder</a></b> (🥇14 · ⭐ 100 · 💀) - A purely-functional HTML builder for Python. Think JSX rather.. <code><a href="http://bit.ly/3nYMfla">Apache-2</a></code> |
111 | | -- <b><a href="https://github.com/tylerbakke/MarkupPy">MarkupPy</a></b> (🥇14 · ⭐ 11 · 💤) - MarkupPy - An HTML/XML generator. <code><a href="http://bit.ly/34MBwT8">MIT</a></code> |
| 122 | +- <b><a href="https://github.com/leforestier/yattag">yattag</a></b> (🥇15 · ⭐ 350 · 💀) - Python library to generate HTML or XML in a readable, concise.. <code>❗Unlicensed</code> |
| 123 | +- <b><a href="https://github.com/codelv/enaml-web">enaml-web</a></b> (🥈14 · ⭐ 110 · 💀) - Build interactive websites with enaml. <code><a href="http://bit.ly/34MBwT8">MIT</a></code> |
| 124 | +- <b><a href="https://github.com/tvst/htbuilder">htbuilder</a></b> (🥈14 · ⭐ 100 · 💀) - A purely-functional HTML builder for Python. Think JSX rather.. <code><a href="http://bit.ly/3nYMfla">Apache-2</a></code> |
| 125 | +- <b><a href="https://github.com/tylerbakke/MarkupPy">MarkupPy</a></b> (🥈14 · ⭐ 11 · 💀) - MarkupPy - An HTML/XML generator. <code><a href="http://bit.ly/34MBwT8">MIT</a></code> |
112 | 126 | - <b><a href="https://github.com/BrainStormYourWayIn/sierra">sierra</a></b> (🥈13 · ⭐ 91 · 💤) - A Pythonic wraparound of HTML/CSS/JS. <code><a href="http://bit.ly/3nYMfla">Apache-2</a></code> |
113 | 127 | - <b><a href="https://github.com/sanic-org/html5tagger">html5tagger</a></b> (🥈13 · ⭐ 32 · 💀) - Create HTML documents from Python. <code><a href="http://bit.ly/3rvuUlR">Unlicense</a></code> |
114 | 128 | - <b><a href="https://github.com/dropbox/pyxl">pyxl</a></b> (🥈12 · ⭐ 550 · 💀) - A Python extension for writing structured and reusable inline HTML. <code><a href="http://bit.ly/3nYMfla">Apache-2</a></code> |
115 | 129 | - <b><a href="https://github.com/apiad/auditorium">auditorium</a></b> (🥈12 · ⭐ 83 · 💀) - An HTML+CSS+JS generator from pure Python code. <code>❗Unlicensed</code> |
116 | 130 | - <b><a href="https://github.com/basxsoftwareassociation/htmlgenerator">htmlgenerator</a></b> (🥈11 · ⭐ 42 · 💀) - TL;DR DOM on the server-side. <code><a href="http://bit.ly/3aKzpTv">BSD-3</a></code> |
117 | 131 | - <b><a href="https://github.com/jaimevp54/htmlBuilder">htmlBuilder</a></b> (🥈11 · ⭐ 38 · 💀) - A beautiful html builder built with python. <code><a href="http://bit.ly/34MBwT8">MIT</a></code> |
118 | | -- <b><a href="https://github.com/leforestier/yattag">yattag</a></b> (🥈10 · ⭐ 350 · 💀) - Python library to generate HTML or XML in a readable, concise.. <code>❗Unlicensed</code> |
119 | | -- <b><a href="https://github.com/pyxl4/pyxl4">pyxl4</a></b> (🥈10 · ⭐ 89 · 💀) - Extend Python syntax with HTML. <code><a href="http://bit.ly/3nYMfla">Apache-2</a></code> |
| 132 | +- <b><a href="https://github.com/pyxl4/pyxl4">pyxl4</a></b> (🥈10 · ⭐ 90 · 💀) - Extend Python syntax with HTML. <code><a href="http://bit.ly/3nYMfla">Apache-2</a></code> |
120 | 133 | - <b><a href="https://github.com/miyakogi/wdom">wdom</a></b> (🥈10 · ⭐ 75 · 💀) - Web technology based GUI library for desktop applications. <code><a href="http://bit.ly/34MBwT8">MIT</a></code> |
121 | 134 | - <b><a href="https://github.com/koaning/mohtml">mohtml</a></b> (🥈10 · ⭐ 72 · 💤) - DSL for HTML that targets marimo and more!. <code><a href="http://bit.ly/34MBwT8">MIT</a></code> |
122 | 135 | - <b><a href="https://github.com/jpsca/jinjax-ui">jinjax-ui</a></b> (🥈10 · ⭐ 21 · 💤) - JinjaX UI components. <code><a href="http://bit.ly/34MBwT8">MIT</a></code> |
123 | 136 | - <b><a href="https://github.com/vchan/hyperscript">hyperscript</a></b> (🥈10 · ⭐ 11 · 💀) - HyperText with Python. <code><a href="http://bit.ly/34MBwT8">MIT</a></code> |
124 | | -- <b><a href="https://github.com/Parnassius/domify">domify</a></b> (🥈10 · ⭐ 7) - HTML generator using pure Python. <code><a href="http://bit.ly/34MBwT8">MIT</a></code> |
125 | 137 | - <b><a href="https://github.com/Michael-F-Ellis/htmltree">htmltree</a></b> (🥈9 · ⭐ 35 · 💀) - Generalized nested html element tree with recursive rendering. <code><a href="http://bit.ly/34MBwT8">MIT</a></code> |
126 | 138 | - <b><a href="https://github.com/LiftoffSoftware/htmltag">htmltag</a></b> (🥈9 · ⭐ 22 · 💀) - A Python (2 *and* 3) module for wrapping whatever strings you want.. <code><a href="http://bit.ly/3nYMfla">Apache-2</a></code> |
127 | | -- <b><a href="https://github.com/MohammadrezaAmani/INUI">INUI</a></b> (🥈9 · ⭐ 21 · 💤) - Powerful and Highly Customizable Python Library for UI. <code><a href="http://bit.ly/34MBwT8">MIT</a></code> |
128 | | -- <b><a href="https://github.com/srittau/python-htmlgen">python-htmlgen</a></b> (🥈9 · ⭐ 18 · 💀) - Python HTML 5 Generator. <code><a href="http://bit.ly/34MBwT8">MIT</a></code> |
129 | | -- <b><a href="https://github.com/pcarbonn/fast_html">fast_html</a></b> (🥉8 · ⭐ 110 · 💤) - Generate HTML conveniently and efficiently in Python. <code><a href="http://bit.ly/37RvQcA">❗️LGPL-3.0</a></code> |
| 139 | +- <b><a href="https://github.com/MohammadrezaAmani/INUI">INUI</a></b> (🥈9 · ⭐ 21 · 💀) - Powerful and Highly Customizable Python Library for UI. <code><a href="http://bit.ly/34MBwT8">MIT</a></code> |
| 140 | +- <b><a href="https://github.com/Parnassius/domify">domify</a></b> (🥈9 · ⭐ 7 · 📉) - HTML generator using pure Python. <code><a href="http://bit.ly/34MBwT8">MIT</a></code> |
| 141 | +- <b><a href="https://github.com/pcarbonn/fast_html">fast_html</a></b> (🥉8 · ⭐ 120 · 💤) - Generate HTML conveniently and efficiently in Python. <code><a href="http://bit.ly/37RvQcA">❗️LGPL-3.0</a></code> |
130 | 142 | - <b><a href="https://github.com/cenkalti/pyhtml">pyhtml</a></b> (🥉8 · ⭐ 75 · 💀) - HTML generation library for Python. <code>❗Unlicensed</code> |
131 | 143 | - <b><a href="https://github.com/keithasaurus/simple_html">simple_html</a></b> (🥉8 · ⭐ 51) - fast, templateless html generation. <code><a href="http://bit.ly/34MBwT8">MIT</a></code> |
132 | | -- <b><a href="https://github.com/mosquito/tagz">tagz</a></b> (🥉8 · ⭐ 7) - tagz is a html tags builder. <code><a href="http://bit.ly/34MBwT8">MIT</a></code> |
133 | | -- <b><a href="https://github.com/DavidVujic/python-hiccup">python-hiccup</a></b> (🥉7 · ⭐ 74) - a Python implementation of the Hiccup syntax. <code><a href="http://bit.ly/34MBwT8">MIT</a></code> |
134 | | -- <b><a href="https://github.com/ejplatform/hyperpython">hyperpython</a></b> (🥉7 · ⭐ 58 · 💀) - A small DSL to write HTML in Python. <code>❗Unlicensed</code> |
| 144 | +- <b><a href="https://github.com/DavidVujic/python-hiccup">python-hiccup</a></b> (🥉7 · ⭐ 74 · 💤) - a Python implementation of the Hiccup syntax. <code><a href="http://bit.ly/34MBwT8">MIT</a></code> |
| 145 | +- <b><a href="https://github.com/ejplatform/hyperpython">hyperpython</a></b> (🥉7 · ⭐ 59 · 💀) - A small DSL to write HTML in Python. <code>❗Unlicensed</code> |
135 | 146 | - <b><a href="https://github.com/timothycrosley/thedom">thedom</a></b> (🥉7 · ⭐ 24 · 💀) - A python framework to generate html and JavaScript from reusable.. <code><a href="http://bit.ly/2KucAZR">❗️GPL-2.0</a></code> |
| 147 | +- <b><a href="https://github.com/srittau/python-htmlgen">python-htmlgen</a></b> (🥉7 · ⭐ 18 · 💀) - Python HTML 5 Generator. <code><a href="http://bit.ly/34MBwT8">MIT</a></code> |
136 | 148 | - <b><a href="https://github.com/frodo821/Rattlepy">Rattlepy</a></b> (🥉7 · ⭐ 9 · 💀) - A easy-to-use pure python HTML template engine. <code><a href="http://bit.ly/34MBwT8">MIT</a></code> |
137 | | -- <b><a href="https://github.com/CheeseCake87/pyhead">pyhead</a></b> (🥉7 · ⭐ 5) - The Python HTML head filler. <code><a href="http://bit.ly/34MBwT8">MIT</a></code> |
| 149 | +- <b><a href="https://github.com/CheeseCake87/pyhead">pyhead</a></b> (🥉7 · ⭐ 5 · 💤) - The Python HTML head filler. <code><a href="http://bit.ly/34MBwT8">MIT</a></code> |
138 | 150 | - <b><a href="https://github.com/mwd1993/QuykHtml">QuykHtml</a></b> (🥉6 · ⭐ 18 · 💤) - A python library that allows you to quickly and easily generate HTML.. <code><a href="http://bit.ly/34MBwT8">MIT</a></code> |
139 | 151 | - <b><a href="https://github.com/Unviray/pyplater">pyplater</a></b> (🥉6 · ⭐ 12 · 💀) - Build html component with python. <code><a href="http://bit.ly/34MBwT8">MIT</a></code> |
140 | 152 | - <b><a href="https://github.com/quokkaproject/flask-htmlbuilder">flask-htmlbuilder</a></b> (🥉6 · ⭐ 11 · 💀) - Builds HTML from Python (recovered from local.. <code><a href="http://bit.ly/3aKzpTv">BSD-3</a></code> |
141 | 153 | - <b><a href="https://github.com/ndendic/RustyTags">rusty-tags</a></b> (🥉6 · ⭐ 11) - High-performance HTML generation library in Rust with Python.. <code>❗Unlicensed</code> |
| 154 | +- <b><a href="https://github.com/mosquito/tagz">tagz</a></b> (🥉6 · ⭐ 7 · 📉) - tagz is a html tags builder. <code><a href="http://bit.ly/34MBwT8">MIT</a></code> |
142 | 155 | - <b><a href="https://github.com/rorre/liku">liku</a></b> (🥉6 · ⭐ 5 · 💀) - Python HTML templating, inspired by modern Web Development. <code><a href="http://bit.ly/34MBwT8">MIT</a></code> |
143 | 156 | - <b><a href="https://github.com/bitplorer/uidom">uidom</a></b> (🥉6 · ⭐ 3 · 💀) - Blade like HTML Library for Python. <code><a href="http://bit.ly/34MBwT8">MIT</a></code> |
144 | 157 | - <b><a href="https://github.com/mdamien/lys">lys</a></b> (🥉5 · ⭐ 76 · 💀) - Simple HTML templating for Python. <code>❗Unlicensed</code> |
@@ -170,9 +183,9 @@ _Projects for generating HTML_ |
170 | 183 |
|
171 | 184 | _Projects for generating HTML forms_ |
172 | 185 |
|
173 | | -<details><summary><b><a href="https://github.com/pallets-eco/wtforms">wtforms</a></b> (🥇29 · ⭐ 1.6K) - A flexible forms validation and rendering library for Python. <code><a href="http://bit.ly/3aKzpTv">BSD-3</a></code></summary> |
| 186 | +<details><summary><b><a href="https://github.com/pallets-eco/wtforms">wtforms</a></b> (🥇27 · ⭐ 1.6K · 📉) - A flexible forms validation and rendering library for Python. <code><a href="http://bit.ly/3aKzpTv">BSD-3</a></code></summary> |
174 | 187 |
|
175 | | -- [GitHub](https://github.com/pallets-eco/wtforms) (👨💻 170 · 🔀 400 · 📥 57 · 📦 260K · 📋 470 - 13% open · ⏱️ 15.01.2026): |
| 188 | +- [GitHub](https://github.com/pallets-eco/wtforms) (👨💻 170 · 🔀 400 · 📥 63 · 📦 260K · 📋 470 - 13% open · ⏱️ 15.01.2026): |
176 | 189 |
|
177 | 190 | ``` |
178 | 191 | git clone https://github.com/pallets-eco/wtforms |
|
0 commit comments