{"id":22938088,"url":"https://github.com/sandy98/bicchiere","last_synced_at":"2025-04-01T19:32:55.334Z","repository":{"id":47455795,"uuid":"516143124","full_name":"sandy98/bicchiere","owner":"sandy98","description":"Bicchiere is a python WSGI micro-framework","archived":false,"fork":false,"pushed_at":"2022-11-05T13:36:15.000Z","size":1462,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-07T12:39:50.361Z","etag":null,"topics":["asgi","microframework","python","session-management","template-engine","web-application","web-development","websockets","wsgi"],"latest_commit_sha":null,"homepage":"https://bicchiere.sytes.net","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/sandy98.png","metadata":{"files":{"readme":"README.es.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-07-20T21:45:49.000Z","updated_at":"2022-09-29T18:06:01.000Z","dependencies_parsed_at":"2023-01-21T22:49:12.979Z","dependency_job_id":null,"html_url":"https://github.com/sandy98/bicchiere","commit_stats":null,"previous_names":[],"tags_count":139,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sandy98%2Fbicchiere","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sandy98%2Fbicchiere/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sandy98%2Fbicchiere/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sandy98%2Fbicchiere/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sandy98","download_url":"https://codeload.github.com/sandy98/bicchiere/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246700618,"owners_count":20819904,"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":["asgi","microframework","python","session-management","template-engine","web-application","web-development","websockets","wsgi"],"created_at":"2024-12-14T12:16:00.842Z","updated_at":"2025-04-01T19:32:55.297Z","avatar_url":"https://github.com/sandy98.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eBicchiere\u003c/h1\u003e\n\n\n\u003cp align=\"center\"\u003e\u003cimg title=\"Un bel bicchiere di Campari\" src=\"https://bicchiere.sytes.net/static/img/bicchiere-rosso-2.jpg\" alt=\"Bicchiere Logotipo\"/\u003e\u003c/p\u003e\n\n## Otro micro-marco web de Python (WSGI)\n\nSiguiendo los pasos de [Flask](https://flask.palletsprojects.com/en/2.1.x/) y [Bottle](https://bottlepy.org/docs/dev/), añadiendo un poco de sabor italiano :- )\n\n## Instalar\n```bash\npip install bicchiere\n```\n\n## [Aplicación de demostración del proyecto](https://bicchiere.sytes.net)\n\nVersión actual: 1.9.5\n\n\u003cp\u003e\n    \u003ca href=\"https://pypi.python.org/pypi/bicchiere\" target=\"_blank\" rel=\"nofollow\"\u003e\u003cimg alt=\"GitHub tag (latest by date)\" src=\"https://img.shields.io/github/v/tag/sandy98/bicchiere?color=%230cc000\u0026label=bicchiere\"\u003e\u003c/a\u003e           \n    \u0026nbsp;\u0026nbsp;\u0026nbsp;\n    \u003ca href=\"https://pepy.tech/project/bicchiere\" rel=\"nofollow\" target=\"_blank\"\u003e\n        \u003cimg src=\"https://static.pepy.tech/personalized-badge/bicchiere?period=total\u0026units=international_system\u0026left_color=black\u0026right_color=blue\u0026left_text=Downloads\"/\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\n## Una gota de Bicchiere\n\n```pithon\nfrom bicchiere import Bicchiere\n\napp = Bicchiere()\no\napp = Bicchiere(\"La mia bella app\")\n\n@app.get(\"/\")\ndef main():\n    return \"Bon giorno, cosa bevete oggi?\"\n    \nif __name__ == \"__main__\":\n    #Esto ejecutará el servidor predeterminado en http://localhost:8086\n    app.run()\n```\n\n... y esto es el clásico **Hola, mundo** versión WSGI, para todo lo demás, consulte [Bicchiere Wiki](https://github.com/sandy98/bicchiere/wiki)\n\nBueno en realidad no. Un poco de justificación está en orden aquí.\n\nEntonces, ¿por qué Bicchiere?\n\n- Por un lado, reinventar la rueda no solo es divertido, sino también muy educativo, así que, por todos los medios, ¡hazlo!\n\n- Me gustan Flask and Bottle. Mucho. Ambos tienen cosas que aprecio mucho, la sencillez en el primero lugar. Pero no termina ahí.\n- También está el enfoque de archivo único/sin dependencias (Bottle), que pretendo imitar con Bicchiere. Aunque no es algo obligatorio, me gusta así.\n- Sesiones integradas (Flask). Aunque el usuario de la biblioteca debe ser libre de elegir lo que quiera con respecto a las sesiones o cualquier otro componente de la aplicación, creo que el manejo de sesiones es una de esas cosas imprescindibles en cualquier aplicación web en estos días. Entonces, proporcioné un mecanismo básico de manejo de sesión, en 3 variantes: memoria, sistema de archivos y sqlite. Esto fue lo máximo que se pudo hacer sin salirse de los límites de la biblioteca estándar de Python. Detalles sobre esto en [la wiki (en construcción)](https://github.com/sandy98/bicchiere/wiki/Bicchiere-session)\n- Mecanismo de plantilla incorporado (Bottle). Se aplican consideraciones similares. En mi opinión, esto también es imprescindible, independientemente de cuán micro sea el marco/biblioteca. Por otra parte, el usuario final debe ser libre de elegir. Como buen middleware compatible con WSGI, Bicchiere no se interpone en el camino del usuario si este prefiere usar [Mako](https://www.makotemplates.org/), [Jinja2](https://jinja.palletsprojects .com/en/3.1.x/), [Genshi](https://genshi.edgewall.org/) o lo que quiera. Detalles en [la wiki (en construcción)](https://github.com/sandy98/bicchiere/wiki/Bicchiere-templates)\n- Manejo de WebSockets: para mí, esta es la fruta del pastel, por varias razones:\n    1. Se ha dicho que no se puede hacer bajo WSGI, razón de más para hacerlo.\n    2. La comunicación en tiempo real parece otra necesidad imperiosa en el panorama actual del desarrollo de aplicaciones web.\n    3. Por otra parte, es muy divertido. Mucho dolor también...\nEn cualquier caso, Bicchiere viene con soporte nativo para WebSocket, recién sacado del horno :-))\nDetalles en [la wiki (en construcción)](https://github.com/sandy98/bicchiere/wiki/Bicchiere-Websocket) . Lamentablemente, [la aplicación original de demostración](https://bicchiere.eu.pythonanywhere.com) no funcionará con websockets, porque **Pythonanywhere** aún no ha implementado la función. A partir de ahora, hay un espejo en [bicchiere.sytes.net](http://bicchiere.sytes.net) que funciona bien, prueba en la página de inicio y todo. En cualquier caso, estos problemas están relacionados con la configuración del proxy inverso y no tienen nada que ver con la aplicación/biblioteca en sí.\n- Y aún así, hay muchas cosas que mencionar. Más por venir...","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsandy98%2Fbicchiere","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsandy98%2Fbicchiere","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsandy98%2Fbicchiere/lists"}