معرفی شرکت ها


bumbo-ivan-0.0.8


Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر

توضیحات

Bumbo Python Web Framework build for learning purpose.
ویژگی مقدار
سیستم عامل -
نام فایل bumbo-ivan-0.0.8
نام bumbo-ivan
نسخه کتابخانه 0.0.8
نگهدارنده []
ایمیل نگهدارنده []
نویسنده Ivan Domenech
ایمیل نویسنده ivan.domenech.g@gmail.com
آدرس صفحه اصلی -
آدرس اینترنتی https://pypi.org/project/bumbo-ivan/
مجوز MIT
# Bumbo: Python Web Framework built for learning purposes ![purpose](https://img.shields.io/badge/purpose-learning-green.svg) ![PyPI](https://img.shields.io/pypi/v/bumbo.svg) Bumbo is a Python web framework built for learning purposes. It's a WSGI framework and can be used with any WSGI application server such as Gunicorn. ## Installation ```shell pip install bumbo-ivan ``` ## How to use it ### Basic usage: ```python from bumbo.api import API app = API() @app.route("/home") def home(request, response): response.text = "Hello from the HOME page" @app.route("/hello/{name}") def greeting(request, response, name): response.text = f"Hello, {name}" @app.route("/book") class BooksResource: def get(self, req, resp): resp.text = "Books Page" def post(self, req, resp): resp.text = "Endpoint to create a book" @app.route("/template") def template_handler(req, resp): resp.body = app.template( "index.html", context={"name": "Bumbo", "title": "Best Framework"}).encode() ``` ### Unit Tests The recommended way of writing unit tests is with [pytest](https://docs.pytest.org/en/latest/). There are two built in fixtures that you may want to use when writing unit tests with Bumbo. The first one is `app` which is an instance of the main `API` class: ```python def test_route_overlap_throws_exception(app): @app.route("/") def home(req, resp): resp.text = "Welcome Home." with pytest.raises(AssertionError): @app.route("/") def home2(req, resp): resp.text = "Welcome Home2." ``` The other one is `client` that you can use to send HTTP requests to your handlers. It is based on the famous [requests](http://docs.python-requests.org/en/master/) and it should feel very familiar: ```python def test_parameterized_route(app, client): @app.route("/{name}") def hello(req, resp, name): resp.text = f"hey {name}" assert client.get("http://testserver/matthew").text == "hey matthew" ``` ## Templates The default folder for templates is `templates`. You can change it when initializing the main `API()` class: ```python app = API(templates_dir="templates_dir_name") ``` Then you can use HTML files in that folder like so in a handler: ```python @app.route("/show/template") def handler_with_template(req, resp): resp.html = app.template( "example.html", context={"title": "Awesome Framework", "body": "welcome to the future!"}) ``` ## Static Files Just like templates, the default folder for static files is `static` and you can override it: ```python app = API(static_dir="static_dir_name") ``` Then you can use the files inside this folder in HTML files: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>{{title}}</title> <link href="/static/main.css" rel="stylesheet" type="text/css"> </head> <body> <h1>{{body}}</h1> <p>This is a paragraph</p> </body> </html> ``` ### Middleware You can create custom middleware classes by inheriting from the `bumbo.middleware.Middleware` class and overriding its two methods that are called before and after each request: ```python from bumbo.api import API from bumbo.middleware import Middleware app = API() class SimpleCustomMiddleware(Middleware): def process_request(self, req): print("Before dispatch", req.url) def process_response(self, req, res): print("After dispatch", req.url) app.add_middleware(SimpleCustomMiddleware) ``` ### ORM API This is a orm with a SQLite support. Connect to the database: ```python from bumbo.orm import Database db = Database("./test.db") ``` Define tables: ```python form bumbo.orm import Table, Column, ForaignKey ... class Author(Table): name = Column(str) age = Column(int) class Book(Table): title = Column(str) published = Column(bool) author = ForaignKey(Author) ``` Create tables: ```python db.create(Author) db.create(Book) ``` Create an instance and insert a row: ```python greg = Author(name="George", age=13) db.save(greg) ``` Fetch all rows: ```python author = db.all(Author) ``` Get a specific row: ```python author = db.get(Author, 47) ``` Save an object with a foreign key reference: ```python book = Book(title="Building an ORM", published=True, author=greg) db.save() ``` Fetch an object with a foreign key: ```python print(Book.get(55).author.name) ``` Update an object: ```python book.title = "How to build an ORM" db.update(book) ``` Delete an object: ```python db.delete(Book, id=book.id) ```


نیازمندی

مقدار نام
==2.10.3 Jinja2
==1.8.5 WebOb
==1.12.1 parse
==0.4.1 requests-wsgi-adapter
==2.22.0 requests
==4.1.4 whitenoise


زبان مورد نیاز

مقدار نام
>=3.6.0 Python


نحوه نصب


نصب پکیج whl bumbo-ivan-0.0.8:

    pip install bumbo-ivan-0.0.8.whl


نصب پکیج tar.gz bumbo-ivan-0.0.8:

    pip install bumbo-ivan-0.0.8.tar.gz