{"id":14974234,"url":"https://github.com/mmgalushka/bootwrap","last_synced_at":"2025-10-27T06:32:05.153Z","repository":{"id":47745808,"uuid":"322434169","full_name":"mmgalushka/bootwrap","owner":"mmgalushka","description":"Python wrapper for Bootstrap enabling quick prototyping of web-based user interfaces.","archived":false,"fork":false,"pushed_at":"2024-12-20T08:16:00.000Z","size":11703,"stargazers_count":5,"open_issues_count":7,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-01T03:22:43.919Z","etag":null,"topics":["bootstrap","flask","python","webui"],"latest_commit_sha":null,"homepage":"https://mmgalushka.github.io/bootwrap/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mmgalushka.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-12-17T23:08:14.000Z","updated_at":"2024-12-20T08:12:51.000Z","dependencies_parsed_at":"2024-09-23T15:01:09.757Z","dependency_job_id":null,"html_url":"https://github.com/mmgalushka/bootwrap","commit_stats":{"total_commits":101,"total_committers":4,"mean_commits":25.25,"dds":0.08910891089108908,"last_synced_commit":"e93830324640fde0e6617b41108d396860a2202b"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mmgalushka%2Fbootwrap","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mmgalushka%2Fbootwrap/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mmgalushka%2Fbootwrap/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mmgalushka%2Fbootwrap/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mmgalushka","download_url":"https://codeload.github.com/mmgalushka/bootwrap/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238455097,"owners_count":19475376,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bootstrap","flask","python","webui"],"created_at":"2024-09-24T13:50:15.892Z","updated_at":"2025-10-27T06:31:59.721Z","avatar_url":"https://github.com/mmgalushka.png","language":"Python","readme":"# Python Bootwrap\n\n![Python + Bootstrap = Bootwrap](https://github.com/mmgalushka/bootwrap/raw/main/docs/bootwrap-equation.png)\n\n[![Continuous Integration Status](https://github.com/mmgalushka/bootwrap/workflows/CI/badge.svg)](https://github.com/mmgalushka/bootwrap/actions)\n[![Code Coverage Percentage](https://codecov.io/gh/mmgalushka/bootwrap/branch/main/graphs/badge.svg)](https://codecov.io/gh/mmgalushka/bootwrap)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/763657a471ff424c85a5b894ddb750d0)](https://www.codacy.com/gh/mmgalushka/bootwrap/dashboard?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=mmgalushka/bootwrap\u0026amp;utm_campaign=Badge_Grade)\n[![Project License](https://img.shields.io/badge/License-MIT-blue.svg)](https://github.com/mmgalushka/bootwrap/blob/main/LICENSE)\n[![Project Documentation](https://img.shields.io/badge/docs-up--to--date-success)](https://mmgalushka.github.io/bootwrap/)\n\n**Bootwrap** is a Python library for rapid developing of web-based user interfaces (WebUI). It helps creating WebUI using Python code only and can be used in conjunction with different web-development frameworks such as [Flask](https://palletsprojects.com/p/flask/). Under the hood, this library wraps one of the most popular front-end toolkit [Bootstrap](https://getbootstrap.com/).\n\nAs a showcase of what this library is capable of please check the documentation. The entire [documentation](https://mmgalushka.github.io/bootwrap/) web interface is created using the **Bootwrap**.\n\n## Installing\n\nInstall and update using [pip](https://pip.pypa.io/en/stable/quickstart/):\n\n```bash\n~$ pip install bootwrap\n```\n\nBootwrap package has no external dependencies!\n\n## Why \u0026 where you might use Bootwrap?\n\nThe vast majority of web applications consist of frontend and backend. If you are a small team or even a solo developer you need to divide resources and time to focus on both parts. This often results in switching between different platforms such as Python and [React](https://reactjs.org/), [AngularJs](https://angular.io/), Flask templates (HTML, CSS, JS), etc. But what if your main focus is the backend and you also don't want to compromise on the quality of your WebUI. In this case, the Bootwrap library is for you! It will help you develop WebUI without leaving the Python ecosystem and not waste your time on HTML, CSS, and Javascript. To understand its capability just clone the project and run the [demo application](demo/demo.md) \":pig: PiggyBank\".\n\n![Screenshots Collage](demo/collage.png)\n\nFor more information also read the Bootwrap [documentation](https://mmgalushka.github.io/bootwrap/).\n\n## Hello World Application\n\nThe following code will create three pages application with a top-level menu bar for navigations. Since this application is based on [Flask](https://palletsprojects.com/p/flask/) make sure that you installed it as well.\n\n```Python\nfrom flask import Flask\nfrom markupsafe import Markup\nfrom bootwrap import Page, Menu, Image, Anchor, Button, Text\n\napp = Flask(__name__, static_folder='docs', static_url_path='')\n\nLOGO = 'https://github.com/mmgalushka/bootwrap/blob/main/docs/logo.png?raw=true'\nFAVICON = 'https://raw.githubusercontent.com/mmgalushka/bootwrap/main/docs/favicon.ico'\n\nclass MyMenu(Menu):\n    def __init__(self):\n        super().__init__(\n            logo=Image(LOGO, width=32, alt='Logo'),\n            brand=Text('Bootwrap').as_strong().as_light().ms(2),\n            anchors=[\n                Anchor('Home').link('/'),\n                Anchor('About').link('/about')\n            ], \n            actions=[\n                Button('Sign In').as_outline().as_light().link('/signin')\n            ]\n        )\n\nclass MyPage(Page):\n    def __init__(self, container):\n        super().__init__(\n            favicon = FAVICON,\n            title='Hello World Application',\n            menu=MyMenu(),\n            container=container\n        )\n\n@app.route('/')\ndef home():\n    return Markup(MyPage(container=Text('Home').as_heading(1)))\n\n@app.route('/about')\ndef about():\n    return Markup(MyPage(container=Text('About').as_heading(1)))\n\n@app.route('/signin')\ndef signin():\n    return Markup(MyPage(container=Text('Sign In').as_heading(1)))\n\nif __name__ == '__main__':\n    app.run(debug=True)\n```\n\nUse the following command to launch the application.\n\n```bash\n$ flask run\n  * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)\n```\n\nThe result should look like.\n\n![Simple Example](https://github.com/mmgalushka/bootwrap/raw/main/docs/multi-pages-app.png)\n\n## Contributing\n\nFor information on how to set up a development environment and how to make a contribution to Bootwrap, see the [contributing guidelines](CONTRIBUTING.md).\n\n## Links\n\n- Documentation: [https://mmgalushka.github.io/bootwrap/](https://mmgalushka.github.io/bootwrap/)\n- PyPI Releases: [https://pypi.org/project/bootwrap/](https://pypi.org/project/bootwrap/)\n- Source Code: [https://github.com/mmgalushka/bootwrap](https://github.com/mmgalushka/bootwrap/)\n- Issue Tracker: [https://github.com/mmgalushka/bootwrap/issues](https://github.com/mmgalushka/bootwrap/)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmmgalushka%2Fbootwrap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmmgalushka%2Fbootwrap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmmgalushka%2Fbootwrap/lists"}