Example: Person Contact Server
This is the full code example for the Person server.
models.py:
# app/models.py
from banjo.models import Model, StringField, IntegerField, BooleanField
class Person(Model):
name = StringField()
age = IntegerField()
student = BooleanField()
def birthday(self):
self.age +=1
self.save()
views.py:
# app/views.py
from banjo.urls import route_get, route_post
from .models import Person
@route_get('all')
def all_persons(params):
if Person.objects.exists():
all_persons = []
for person in Person.objects.all():
all_persons.append(person.to_dict())
return {'all persons': all_persons}
else:
return {'error': 'no persons exists'}
@route_get('all_students')
def all_students(params):
if Person.objects.filter(student=True).exists():
all_students = []
for person in Person.objects.filter(student=True):
all_students.append(person.to_dict())
return {'all students': all_students}
else:
return {'error': 'no persons exists'}
@route_get('one', args={'id': int})
def one_person(params):
if Person.objects.filter(id=params['id']).exists():
one_person = Person.objects.get(id=params['id'])
return {'person': one_person.to_dict()}
else:
return {'error': 'no person exists'}
@route_post('add_person', args={'name': str, 'age': int, 'student': bool})
def add_person(params):
new_person = Person.from_dict(params)
new_person.save()
return new_person.to_dict()
@route_post('birthday', args={'id': str})
def add_person(params):
single_person = Person.objects.get(id=params['id'])
single_person.birthday()
return single_person.to_dict()