Skip to main content

Create endpoints simpler

Project description

starlette-views – A helper to make views faster with Starlette

Starlette-Views automatically converts views results into starlette.responses.Response objects.

Tests Status PYPI Version

Requirements

  • python >= 3.7

Installation

starlette-views should be installed using pip:

pip install starlette-views

Initialization

Just wrap your Starlette application into the views:

from starlette_views import Views

app = Starlette(...)
app = Views(app)

or you are able to import Starlette from the module (in this case you have nothing to setup more):

from starlette_views import Starlette

app = Starlette(...)

Quick Start

from starlette.applications import Starlette
from starlette.routing import Route


async def hello(request):
    return 'Hello from Views!'

 # Create Starlette Application
app = Starlette(routes=[
     Route('/', hello)
])

# Enable the quick views
app = Views(app)

Then run the application…

$ uvicorn example:app

Open http://127.0.0.1:8000 and you will find the hello from the views.

Usage

async def render_json1(request):
    """Just return dictionary to make a JSON response."""
    return {'any': 'value'}


async def render_json2(request):
    """List also works well."""
    return [{'any': 'value'}]


async def render_json3(request):
    """Return a tuple to set HTTP status."""
    return 403, {'message': 'Authorization required'}


async def render_html1(request):
    """Return any string to make an HTML response."""
    return "<h1>I would be rendered as HTML</h1>"


async def render_html2(request):
    """Return a tuple to set HTTP status."""
    return 201, 'Record Created'


# Starlette Responses works as well too
from starlette.responses import HTMLResponse


async def render_normal(request):
    """Starlette Responses are returned as is."""
    return HTMLResponse('Common behaviour', status_code=200)

Bug tracker

If you have any suggestions, bug reports or annoyances please report them to the issue tracker at https://github.com/klen/starlette-views/issues

Contributing

Development of the project happens at: https://github.com/klen/starlette-views

License

Licensed under a MIT license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

starlette_views-0.0.3-py3-none-any.whl (3.2 kB view details)

Uploaded Python 3

File details

Details for the file starlette_views-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: starlette_views-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 3.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.1.3 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.0

File hashes

Hashes for starlette_views-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 0d4a5dff065419bce946da6d5afcf7b9d66ecc394dd52e2374b2913cc2c88328
MD5 e08e91fde44741f54aa471313c481082
BLAKE2b-256 abf7e98e84b6f875b3439f41d0d905e9138743401ae98de2db88d9b325d561c5

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page