Bottle Suite
Bottle.py suite with CORS, SQL, REST, and JWT
Installation
python3 -m pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ bottle-suite --upgrade
Usage
CLI
Create Project
$ bottle-suite-create
Enter project name. <bottle-suite-project>:
Create a SQLite database? [y/N]:
Attach an SQL database? [y/N]:
Created project bottle-suite-project
cd bottle-suite-project
bottle-suite -d -r
Run
$ cd bottle-suite-project
$ bottle-suite -d -r
View dashboard @ http://localhost:8000/dashboard
Bottle v0.13-dev server starting up (using WSGIRefServer(dashboard=True))...
Listening on http://localhost:8000/
Hit Ctrl-C to quit.
Options
usage: bottle-suite [-h] [--port PORT] [--host HOST] [--jwt JWT_KEY] [--sqlite [PATH]] [--dbhost DBHOST] [--dbname DBNAME] [--dbuser DBUSER] [--dbpass DBPASS] [--cors CORS] [-r] [-d]
optional arguments:
-h, --help show this help message and exit
--port PORT Port to listen on
--host HOST Host to listen on
--jwt JWT_KEY JWT key
--sqlite [PATH] Path to SQLite database (default: bottle-suite/src/scripts/tmp.db)
--dbhost DBHOST SQL database host
--dbname DBNAME SQL database name
--dbuser DBUSER SQL database username
--dbpass DBPASS SQL database password
--cors CORS Enable CORS
-r Automatic reloading
-d Enable dashboard
Import
app.py
from bottle_suite import BottleSuite
app = BottleSuite()
app.run(reloader=True)
Resources
Resource Folder
Bottle Suite will attempt to automatically find Resources objects in a resource folder in the working directory and create endpoints for them. By default it will look for a folder named "resources". All ".py" files in the folder will be scanned for Resource objects.
Example Project Structure
├── src
│ ├── resources
│ │ ├── __init__.py
│ │ ├── resource_a.py
| | ├── resource_b.py
│ ├── app.py
Resource Objects
resource_a.py
from bottle_suite import Resource
class ResourceA(Resource):
def options(self):
pass
def get(self):
return {}
def post(self):
pass
def put(self):
pass
def patch(self):
pass
def delete(self):
pass
Adding Endpoints for Resources
Bottle Suite has a Bottle REST object. Resources can be added by accessing the Bottle REST object and calling addResource().
app.py
from resources.resource_a import ResourceA
from bottle_suite import BottleSuite
app = BottleSuite()
app.rest.addResource(ResourceA, "/resource_a")
app.run(reloader=True)
Release files for bottle-suite 0.0.17
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| bottle_suite-0.0.17.tar.gz | 342.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| bottle_suite-0.0.17-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 694.0 kB
Release files / bottle_suite-0.0.17.tar.gz
| Download URL | bottle_suite-0.0.17.tar.gz |
|---|---|
| Size | 342.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9645c4e2230399c1f2650fd5847ef5852ac8f79b1c8a6c5f79f3e6e51e1c524b
|
|
BLAKE2b-256 checksum How to use checksums |
b960d2779ff57d37e8ec1da93b462125edfa22cccdd885fbefe29a7dbe540132
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.8.10
|
Release files / bottle_suite-0.0.17-py3-none-any.whl
| Download URL | bottle_suite-0.0.17-py3-none-any.whl |
|---|---|
| Size | 351.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
784b04888f7f7c384ceb018c7c6ff91455bd0bdfba8115ba50dcd0ee588abb73
|
|
BLAKE2b-256 checksum How to use checksums |
4498e4ca0cf02e63575690511ad12c7ae6402cbb304dabe0369337ae8dbc344f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.8.10
|