Bootstrapping Django with Ease

Mike Biglan (Twenty Ideas), M Wiggins (Concentric Sky), Josh Bothun (Concentric Sky)
Python
Location: D135
Average rating: ****.
(4.20, 5 ratings)

The underlying bootstrapping (i.e. “startproject”) and environmental setup process in Django has remained mostly unchanged back to 0.96. New tools like pip and virtualenv have drastically improved the standard Django developer workflows and environment but Django has not changed to take advantage of these. And it shouldn’t. There’s no reason for Django to have knowledge of the packaging and environmental infrastructure — or even have new project template(s) baked in.

Enter Djenesis. Djenesis is a simple, (5k) pip-installable tool that cleanly decouples the bootstrapping and environment-setup from the Django package. It has three common uses:

  1. Replaces and enhances Django’s startproject
  2. Let’s you choose your new-project template via URL (git or zip)
  3. Allows you to setup an environment based on an existing Django project automatically installing all listed requirements.

The ability to reference both new- and existing-project templates will allow for simpler tutorials and a better marketplace for alternative Django site structures. After having built and launched many dozens of complex Django websites, we released our default Django structure as a template example in the Djenesis docs.

Easier for Beginners. Someone new to MVC frameworks, Django, Python, and web programming needs an easy set of tools to get a robust, real-life environment. Any real Django setup will have virtualenv in place. But virtualenv is a lot to swallow when creating a first Django app. That leaves two routes to teaching novices:

  1. Keep it simple and skip virtualenv. Unfortunately this can leave unintended cruft and confusion on the user’s machine, the last thing a new user needs.
  2. Try to go into the why’s and what’s of virtualenv before the user even knows what problem virtualenv solves.

Djenesis skips any immediate need to understand virtualenv while still relying on it. This sets the user up with a “real” and sandboxed environment while saving the user from needing to immediately understand the commands or details of virtualenv initialization.

Photo of Mike Biglan

Mike Biglan

Twenty Ideas

Mike is the Chief Technology Officer at Concentric Sky, a development shop of 50 in Eugene, OR. We have a team of eight focused on Django and have many dozen Django projects under our collective belts. We’ve launched a mix Python and Django sites for organizations such as the National Science Foundation and the IETF as well as others such as MichaelMoore.com and EugeneAGoGo.com.

Mike has an M.S. in Computer Science & Engineering from UC San Diego, a B.A. in Economics from the University of Chicago, and a background in statistics and data analysis.

Photo of M Wiggins

M Wiggins

Concentric Sky

Wiggins has been programming his entire life after learning his alphabet on an apple][ keyboard. He has been working with Concentric Sky for just over a year. Prior to that he has spent several years as a software developer for several other companies. He led the development team for michaelmoore.com, santefe.edu, EugeneAGoGo.com, and many other Django related projects at Concentric Sky. In addition, he’s built and released several Android Apps including GeoBee for National Geographic.

Wiggins knows many different languages, and enjoys learning new ones. He has published some android software in his spare time as Hlidskialf Software.

Josh Bothun

Concentric Sky

Josh has a B.S. from the University of Oregon in Computer Science. In the past year, he has worked on a variety of Android Apps, a Python-based App for the IETF, and a number of Django-centered web applications.

Sponsors

For information on exhibition and sponsorship opportunities at the conference, contact Sharon Cordesse at (707) 827-7065 or scordesse@oreilly.com.

View a complete list of OSCON contacts