8 Open SOurce YearbOOk 2015 .
.
.
CC BY-SA 4.0 .
.
.
OpenSOurce.cOm
WORKING
. ........ .
... .. ... .
.. .. .. ....
So, we’ve seen the entire
history of the Django project
and community, and we’ve
seen popular packages
come and go. Between the
three of us, we’ve probably
tried at least half of these
8,000 apps personally, or we know someone who has. We
have a strong understanding of what makes an app solid and
reliable, and we have a good understanding of what gives
these things staying power.
Best way to start a new Django site: Cookiecutter
Starting off a new project or app is always a bit of a pain. You
can use Django’s built in
`startproject` but if you’re like us,
you’re particular in how you do things. Cookiecutter solves
this by giving you a quick and easy way to dene project or
app templates that can be easily reused. A quick example,
just
`pip install cookiecutter` and then run this from the
command line:
$ cookiecutter https://github.com/marcofucci/
cookiecutter-simple-django
You’ll immediately start getting prompted for quick answers,
such as the name of your project, repo, author name, email,
and a few other bits of conguration. These are used to help
ll out the project details. We picked the ever so original ’foo’
to be our repo name. So cookiecutter created a simple Djan-
go project in the subdirectory ’foo’.
If you poke around in the ’foo’ project a bit, you’ll see
the other bits of conguration you were prompted for have
been templated into the les themselves along with sub-di-
rectories as necessary. This “template” is all dened at the
GitHub repo URL we used as the only argument when we
called `cookiecutter`. This example used a remote GitHub
repo as the template; however, note that you can use local
Django
[1] is built
around the
concept of reusable apps [2]:
self-contained packages that
provide re-usable features.
You can build your site by
composing these reusable
apps, together with your own site-specic code. There’s a
rich and varied ecosystem of reusable apps available for
your use—PyPI lists more than 8,000 Django apps [3]—but
how do you know which ones are best?
To help focus your app search, we’ve put together this list
of our ve favorites. They are:
• Cookiecutter: the best way to start a new Django site. [4]
• Whitenoise: the best static asset server. [5]
• Django Rest Framework: the best way to write REST
APIs with Django. [6]
• Wagtail: the best Django-based content-management
system. [7]
• django-allauth: the best way to provide “social login”
(e.g., Twitter, Facebook, GitHub, etc). [8]
We also recommend you check out Django Packages [9],
a directory of reusable Django apps. Django Packages
organizes Django apps into “grids” that allow you to com-
pare similar packages and chose between them. You can
see which features are offered by each package, as well
as usage statistics. (For example, the grid for REST tools
[10] might help you understand why we recommend Django
REST Framework.)
Why should you trust us?
We’ve been using Django for longer than almost anyone.
Two of us (Frank and Jacob) worked at the Lawrence Jour-
nal-World [11] (birthplace of Django) before Django was re-
leased (and in fact helped make the open source release
happen). We’ve all spent the past eight years running a con-
sultancy that advises companies on how best to use Django.
5 favorite open source
Django packages
BY
JEFF TRIPLETT, JACOB KAPLAN-MOSS, AND FRANK WILES