Skip to main content
Pyramid RESTful Framework is designed to help coding REST CRUD endpoints with couple of lines of code.

Setup.

1. virtualenv myapp
2. pip install git+https://github.com/vahana/prf
3. pcreate -s starter myapp
4. cd myapp
5. pip install -e .

Run.

pserve development.ini

This will run a server and you can navigate your browser to http://0.0.0.0:6543


Adding prf resources.

In the __init__.main function of your pyramid app declare your resources:

def main():
...
config.include('prf')
root = config.get_root_resource()
user = root.add('user', view='prf.view.NoOp')
user_story = user.add('story', 'stories', view='prf.view.NoOp')
...

The following endpoints are declared with the code above:
/users/{id}
/users/{user_id}/stories/{id}

You can now navigate to http://0.0.0.0:6543/users or http://0.0.0.0:6543/users/1/stories

'NoOp' view as name suggests does not do much. You will need to create your own views for each resource.
In our case UsersView and UserStoriesView.

UsersView could look something like this:

from prf.view import BaseView

Users = [
{
'id': 0,
'name':'Alice',
},
{
'id': 1,
'name':'Bob',
},
{
'id': 2,
'name':'Katy',
},
]

class UsersView(BaseView):

def index(self):
return Users

def show(self, id):
return Users[int(id)]

def create(self):
Users.update(**self._params)

def delete(self, id):
del Users[id]

You need to change the view for the users resource to point to this class:
user = root.add('user', view=UsersView)

Restart the server and navigate to http://0.0.0.0:6543/users

Above we declared `index`, `show`, `create` and `delete` actions which correspond to: GET collection, GET resource, POST resource and DELETE resource respectively. You could also declare `update`, which would correspond to the PUT method. You dont need to declare all of them, only those you need. The missing ones will automatically return 405 Method Not Allowed error.

Comment out the `index` action and try.

Happy RESTing !



0.0
---

- Initial version


Release files for prf 0.0.22

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for prf 0.0.22
File Size Uploaded
prf-0.0.22.tar.gz 44.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for prf 0.0.22
File Interpreter ABI Platform
prf-0.0.22-py2-none-any.whl Python 2 none any Details

Total release size: 101.5 kB

Release files / prf-0.0.22.tar.gz

Download URL prf-0.0.22.tar.gz
Size 44.1 kB
Tags Source
SHA-256 checksum
How to use checksums
c0ea291799613def308a8a33231a83934a0326576c11404c603ea86bbc7ce0e7
BLAKE2b-256 checksum
How to use checksums
462638f280cb24c76039647fd064800fea5c1b90c2fec9b2455d56949a1f6413
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / prf-0.0.22-py2-none-any.whl

Download URL prf-0.0.22-py2-none-any.whl
Size 57.4 kB
Tags Python 2
SHA-256 checksum
How to use checksums
d81a2c4e57497706077c399afec51d9b6050bec3851c0c257fe2eafb98ab4a00
BLAKE2b-256 checksum
How to use checksums
ff282f417b3ca9da4c2f2abf525f85b8362584a2595b532d18611771b09225d4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

1.0.2

2 release files

0.0.28

2 release files

0.0.27

2 release files

0.0.26

2 release files

0.0.25

2 release files

0.0.24

2 release files

0.0.23

2 release files

This release

0.0.22 This release

2 release files

0.0.21

2 release files

0.0.20

2 release files

0.0.16

2 release files

0.0.15

2 release files

0.0.14

2 release files

0.0.13

2 release files

0.0.12

2 release files

0.0.11

2 release files

0.0.10

2 release files

0.0.8

2 release files

0.0.7

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page