{"id":15008884,"url":"https://github.com/turbogears/tg2","last_synced_at":"2025-05-14T07:09:03.180Z","repository":{"id":50990828,"uuid":"1381103","full_name":"TurboGears/tg2","owner":"TurboGears","description":"Python web framework with full-stack layer implemented on top of a microframework core with support for SQL DBMS, MongoDB and Pluggable Applications","archived":false,"fork":false,"pushed_at":"2025-02-18T22:52:59.000Z","size":5966,"stargazers_count":813,"open_issues_count":11,"forks_count":80,"subscribers_count":33,"default_branch":"development","last_synced_at":"2025-04-14T12:58:23.161Z","etag":null,"topics":["framework","fullstack","microframework","python","python-2","python-3","web","webframework"],"latest_commit_sha":null,"homepage":"http://www.turbogears.org/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TurboGears.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.txt","contributing":"CONTRIBUTING.txt","funding":null,"license":"LICENSE.txt","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":"2011-02-18T04:07:35.000Z","updated_at":"2025-04-10T15:11:05.000Z","dependencies_parsed_at":"2024-03-18T01:27:52.815Z","dependency_job_id":"d57b2791-8ba5-4944-824e-2fdbf781acdd","html_url":"https://github.com/TurboGears/tg2","commit_stats":null,"previous_names":[],"tags_count":39,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TurboGears%2Ftg2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TurboGears%2Ftg2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TurboGears%2Ftg2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TurboGears%2Ftg2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TurboGears","download_url":"https://codeload.github.com/TurboGears/tg2/tar.gz/refs/heads/development","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254092776,"owners_count":22013290,"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":["framework","fullstack","microframework","python","python-2","python-3","web","webframework"],"created_at":"2024-09-24T19:21:21.842Z","updated_at":"2025-05-14T07:08:58.156Z","avatar_url":"https://github.com/TurboGears.png","language":"Python","readme":"TurboGears\n==========\n\n.. image:: https://github.com/TurboGears/tg2/actions/workflows/run-tests.yml/badge.svg\n    :target: https://github.com/TurboGears/tg2/actions/workflows/run-tests.yml\n\n.. image:: https://coveralls.io/repos/TurboGears/tg2/badge.svg?branch=development\n    :target: https://coveralls.io/r/TurboGears/tg2?branch=development\n\n.. image:: https://img.shields.io/pypi/v/TurboGears2.svg\n   :target: https://pypi.python.org/pypi/TurboGears2\n\n.. image:: https://img.shields.io/pypi/pyversions/TurboGears2.svg\n    :target: https://pypi.python.org/pypi/TurboGears2\n\n.. image:: https://img.shields.io/pypi/l/TurboGears2.svg\n    :target: https://pypi.python.org/pypi/TurboGears2\n\n.. image:: https://www.codetriage.com/turbogears/tg2/badges/users.svg\n    :target: https://www.codetriage.com/turbogears/tg2\n\n.. image:: https://img.shields.io/gitter/room/turbogears/Lobby.svg\n    :target: https://gitter.im/turbogears/Lobby\n\n.. image:: https://img.shields.io/twitter/follow/turbogearsorg.svg?style=social\u0026label=Follow\n    :target: https://twitter.com/turbogearsorg\n\n.. raw:: html\n   \n   \u003cimg align=\"right\" width=\"100px\" src=\"https://turbogears.org/_static/logos/tg.png\"\u003e\n\nTurboGears is a hybrid web framework able to act both as a Full Stack\nframework or as a Microframework. \nTurboGears helps you get going fast and gets out of your way when you want it!\n\nTurboGears can be used *both* as a *full stack* framework or as a\n*microframework* in single file mode.\n\nThe following content covers examples in minimal mode, to see\nan example for full stack capabilities take a look at\n`tg.devtools \u003chttps://github.com/turboGears/tg2devtools\u003e`_\n\nGet Started\n-----------\n\n.. image:: https://asciinema.org/a/181221.png\n    :target: https://asciinema.org/a/181221?autoplay=1\n\nTo try TurboGears just get ``pip`` if you don't already have it::\n\n    $ curl -O 'https://bootstrap.pypa.io/get-pip.py'\n    $ python get-pip.py\n\nAnd install Turbogears::\n\n    $ pip install TurboGears2\n\nThen serving a TurboGears web application is as simple as making a ``webapp.py``\nfile with your application::\n\n    from wsgiref.simple_server import make_server\n    from tg import MinimalApplicationConfigurator\n    from tg import expose, TGController\n\n    # RootController of our web app, in charge of serving content for /\n    class RootController(TGController):\n        @expose(content_type=\"text/plain\")\n        def index(self):\n            return 'Hello World'\n\n    # Configure a new minimal application with our root controller.\n    config = MinimalApplicationConfigurator()\n    config.update_blueprint({\n        'root_controller': RootController()\n    })\n\n    # Serve the newly configured web application.\n    print(\"Serving on port 8080...\")\n    httpd = make_server('', 8080, config.make_wsgi_app())\n    httpd.serve_forever()\n\n\nStart it with ``python webapp.py`` and open your browser at ``http://localhost:8080/``\n\nWant to play further with TurboGears? Try the TurboGears Tutorials:\n\n* `Getting Started with Turbogears \u003chttp://turbogears.readthedocs.io/en/latest/turbogears/minimal/index.html\u003e`_\n* `Building a Wiki in 20 minutes \u003chttp://turbogears.readthedocs.io/en/latest/turbogears/wiki20.html\u003e`_\n\nSupport and Documentation\n-------------------------\n\nVisit `TurboGears Documentation \u003chttp://turbogears.readthedocs.io/\u003e`_ for\ncomplete **documentation** and **tutorials**.\n\nSee the `TurboGears website \u003chttp://www.turbogears.org/\u003e`_ to get\na quick overview of the framework and look for support.\n\nLicense\n-------\n\nTurboGears is licensed under an MIT-style license (see LICENSE.txt).\nOther incorporated projects may be licensed under different licenses.\nAll licenses allow for non-commercial and commercial use.\n\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fturbogears%2Ftg2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fturbogears%2Ftg2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fturbogears%2Ftg2/lists"}