A boilerplate application for Django web applications.

David Leonard bd71a8fd46 Installing django-cors-headers, updating settings.py to send headers with all http requests 10 سال پیش
hackathon_starter bd71a8fd46 Installing django-cors-headers, updating settings.py to send headers with all http requests 10 سال پیش
.hgignore c74db8ab7e Updating front-end dependencies: angularjs and angular-ui-router 10 سال پیش
README.md 7d27ff3537 Cleaning up README, adding instructions for setting up sample RESTful API 10 سال پیش
bower.json c74db8ab7e Updating front-end dependencies: angularjs and angular-ui-router 10 سال پیش
requirements.txt bd71a8fd46 Installing django-cors-headers, updating settings.py to send headers with all http requests 10 سال پیش

README.md

Django Hackathon Starter

What is Django Hackathon Starter

Django Hackathon Starter aims to be a project which will aggegrate data from several APIs, producing a RESTful API which can be consumed by a client (also intended to be built).

Our deployment can be found here.

Running this project

In order to run this project, do the following:

# Install the requirements
pip install -r requirements.txt

# Perform database migrations
python manage.py migrate

# Run the server
python manage.py runserver

Front End dependencies

This project relies on Bower for all front end libraries, to avoid pushing up large libraries such as jQuery and Bootstrap. To install bower, you will need to install npm, which now comes bundled with node.js. To install npm, simply install node as follows.

First, install bower:

npm install -g bower

Then:

bower install

This will download and extract all the packages listed within bower.json. Under no circumstance should any front-end libraries manually be pushed up to the repository.

Testing

This project aims to be as close to 100% tested as possible. For a good guide to testing using Python and Mock, Nosetests and Unittests libraries, please read here.

To run the tests:

hackthon-starter $ python manage.py test hackathon/unittests/

Code evaluation

In order to write clean code with a consistent style guide, we'll be using Pylint to maintain our code. Pylint will display a ton of messages regarding things that should be fixed. A sample output from running pylint views.py is shown below:

RESTful endpoints

Using the `Django REST framework, the current RESTful endpoints exist:

http://127.0.0.1:8000/hackathon/snippets/

The list will appear empty at first, since the database model Snippets will be empty. To populate it with some sample data, run the following:

python manage.py shell
from hackathon.models import Snippet
from hackathon.serializers import SnippetSerializer
from rest_framework.renderers import JSONRenderer
from rest_framework.parsers import JSONParser

snippet = Snippet(code='foo = "bar"\n')
snippet.save()

snippet = Snippet(code='print "hello, world"\n')
snippet.save()

The above will open the Django shell, and allow you to create objects and save them to the database. If you then navigate to the URL above, you will see the JSON output of the database model, Snippet.

Contributors

  • David Leonard
  • Eswari Swarna
  • Marco Quezada
  • Wan Kim Mok