Skip to content

Instantly share code, notes, and snippets.

@bhrutledge
Last active December 12, 2023 16:34
Show Gist options
  • Save bhrutledge/c5f07c1d2d6b2209e86e3e7f278a93ec to your computer and use it in GitHub Desktop.
Save bhrutledge/c5f07c1d2d6b2209e86e3e7f278a93ec to your computer and use it in GitHub Desktop.
My thoughts on Django tutorials

Django Tutorials

I've scanned through these, and they all seem to cover the basic features of Django (models, function-based views, forms, templates, CSS, and the admin interface), and use Python 3 and Django 2. My notes indicate what I think differentiates them.

Django Girls tutorial

  • Written for Django Girls workshops or self-teaching
  • Widely recommended for beginners, even to Python, web development, and command line
  • Build a blog
  • Instructions for Windows, Mac, and Linux (including Python installation)
  • Uses standard venv module for virtual environments
  • Styling with Bootstrap and customization
  • Push to GitHub
  • Deploy to PythonAnywhere

Mozilla Developer Network Django tutorial

  • Part of a larger guide on back-end web development
  • Recommends (but doesn't require) familiarity with Python
  • Build a library catalog
  • Touches on Python installation for Windows, Mac, and Linux
  • Uses virtualenvwrapper for virtual environments, which seems like unnecessary complexity
  • Covers class-based views, testing, sessions, user authentication, and security
  • Styling via Bootstrap
  • Deploys to Heroku
  • Includes exercises along the way, and a self-assessment project to build a blog

Django's official "Getting started" guide

  • Seems to assume intermediate Python knowledge
  • Build a polling app
  • Glosses over virtual environments, but recommends virtualenvwrapper
  • Covers class-based views and testing

Visual Studio Code Python and Django tutorial

  • One of several Python tutorials focusing on editor features
  • Doesn't go into much depth
  • Touches on Python installation for Windows, Mac, and Linux
  • Uses standard venv module for virtual environments
  • Covers the built-in debugger
  • Deployment to Azure in other articles

Most of these recommendations come from the second episode of the Django Chat podcast, "How to Learn Django". The host covered similar content in a presentation at the Django Boston Meetup:

8 Reasons Why Learning Django is Hard (links go to slides)

  1. Web development is hard (but this applies to all languages/frameworks)
  2. Python development environments should be easier
  3. Spotty educational resources
  4. Lots of layers (model/view/url/template) to wire up
  5. Multiple layout conventions re: templates and settings
  6. Function-Based Views vs. Class-Based Views
  7. Customizing the User model
  8. Deployment

Also, I generally agree with an opinionated FAQ that covers things like configuration and deployment.

Books

I haven't read these, but they look promising.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment