Skip to main content

Restful API generated by ponyorm and falcon

Project description

pony-rest

A subset implementation of PostgREST.

You should read PostgREST and PonyORM first.

Install

pip install pony-rest

Example

Edit app.py:

from datetime import datetime, date
from pony_rest import BaseEntity, start, make_app

from pony.orm import (
    PrimaryKey,
    Required,
    Optional,
    Set,
    Json,
    db_session,
)


class Person(BaseEntity):
    name = Required(str, 32)
    age = Required(int)
    data = Optional(Json)
    cars = Set(lambda: Car)


class Car(BaseEntity):
    make = Required(str, 64)
    model = Optional(str, 32, nullable=True)
    owner = Required(lambda: Person)


if __name__ == '__main__':
    start(18000)
else:
    application = make_app()  # wsgi app

How to use this server to do CRUD

# create new Person
curl -d '{"name": "foo", "age": 10}' localhost:18000/person

# read Person list
curl localhost:18000/person

# update Person where id is 1
curl -X PATCH -d '{"age": 10}' 'localhost:18000/person?id=eq.1'

# delete Person where id is 1
curl -X DELETE 'localhost:18000/person?id=eq.1'

Connect your database

Create a configure file: database.yaml in your working directory, likes:

provider: sqlite
filename: ":memory:"
create_db: true
create_tables: true

...and see database.yaml in this repo to find more.

Note: only the first block configurations in yaml file is used for database, you could leave the old configurations in next blocks.

Lots TODO...

Project details


Download files

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

Source Distribution

pony-rest-2.6.tar.gz (4.6 kB view hashes)

Uploaded Source

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