Slide 1

Slide 1 text

THROUGH THE YEARS ANDREW GODWIN // @andrewgodwin DJANGO

Slide 2

Slide 2 text

Andrew Godwin / @andrewgodwin Hi, I’m Andrew Godwin • Principal Engineer at Astronomer (w/on Airflow) • Django Migrations, Channels & Async • Doing odd things with Django since 2006

Slide 3

Slide 3 text

Andrew Godwin / @andrewgodwin I love a nice, relaxing conference Sitting back, chatting to people, doing a panel tomorrow

Slide 4

Slide 4 text

Andrew Godwin / @andrewgodwin

Slide 5

Slide 5 text

Andrew Godwin / @andrewgodwin

Slide 6

Slide 6 text

Andrew Godwin / @andrewgodwin FOR FUN AND MAYBE PROFIT CNC Machining

Slide 7

Slide 7 text

Andrew Godwin / @andrewgodwin AND WHY BUILDING THEM IS HARD CAMPER VANS

Slide 8

Slide 8 text

Andrew Godwin / @andrewgodwin AND HOW CUTE THEY ARE MY CATS

Slide 9

Slide 9 text

Andrew Godwin / @andrewgodwin I've been using Django since 2006 Yes, that is almost half my life now. Don't remind me.

Slide 10

Slide 10 text

Andrew Godwin / @andrewgodwin I've been attending DjangoCon since 2008 That first one was a transformative experience in my life!

Slide 11

Slide 11 text

Andrew Godwin / @andrewgodwin

Slide 12

Slide 12 text

Andrew Godwin / @andrewgodwin Schema Evolution Panel, 2008

Slide 13

Slide 13 text

Andrew Godwin / @andrewgodwin Django was different back then… Here's some highlights from the 1.0 release, right before DjangoCon 2008

Slide 14

Slide 14 text

Andrew Godwin / @andrewgodwin

Slide 15

Slide 15 text

Andrew Godwin / @andrewgodwin

Slide 16

Slide 16 text

Andrew Godwin / @andrewgodwin

Slide 17

Slide 17 text

Andrew Godwin / @andrewgodwin

Slide 18

Slide 18 text

Andrew Godwin / @andrewgodwin Cal Henderson's "Why I Hate Django"

Slide 19

Slide 19 text

Andrew Godwin / @andrewgodwin No multiple databases Dumb SQL generation Cookie-based sessions No good debugging tools No migration system Not smug enough

Slide 20

Slide 20 text

Andrew Godwin / @andrewgodwin No multiple databases Dumb SQL generation Cookie-based sessions No good debugging tools No migration system Not smug enough

Slide 21

Slide 21 text

Andrew Godwin / @andrewgodwin No multiple databases Dumb SQL generation Cookie-based sessions No good debugging tools No migration system Not smug enough

Slide 22

Slide 22 text

Andrew Godwin / @andrewgodwin South (Because birds migrate south in the winter) (It takes some people years and years to realise this)

Slide 23

Slide 23 text

Andrew Godwin / @andrewgodwin https://aeracode.org/speaking/

Slide 24

Slide 24 text

Andrew Godwin / @andrewgodwin https://aeracode.org/speaking/

Slide 25

Slide 25 text

Andrew Godwin / @andrewgodwin Schema Evolution Panel, September 2008

Slide 26

Slide 26 text

Andrew Godwin / @andrewgodwin Schema Evolution Panel, September 2008

Slide 27

Slide 27 text

Andrew Godwin / @andrewgodwin Schema Evolution Panel, September 2008

Slide 28

Slide 28 text

Andrew Godwin / @andrewgodwin Designing Django's Migrations, April 2014

Slide 29

Slide 29 text

Andrew Godwin / @andrewgodwin Designing Django's Migrations, April 2014

Slide 30

Slide 30 text

Andrew Godwin / @andrewgodwin Designing Django's Migrations, April 2014

Slide 31

Slide 31 text

Andrew Godwin / @andrewgodwin Designing Django's Migrations, April 2014

Slide 32

Slide 32 text

Andrew Godwin / @andrewgodwin Migrations Under The Hood, November 2014

Slide 33

Slide 33 text

Andrew Godwin / @andrewgodwin Migrations Under The Hood, November 2014

Slide 34

Slide 34 text

Andrew Godwin / @andrewgodwin Migrations Under The Hood, November 2014

Slide 35

Slide 35 text

Andrew Godwin / @andrewgodwin Migrations Under The Hood, November 2014

Slide 36

Slide 36 text

Andrew Godwin / @andrewgodwin Migrations Under The Hood, November 2014

Slide 37

Slide 37 text

Andrew Godwin / @andrewgodwin Now, it Just Works™ (I have to use Alembic at work right now and I'm missing Django)

Slide 38

Slide 38 text

Andrew Godwin / @andrewgodwin

Slide 39

Slide 39 text

Andrew Godwin / @andrewgodwin Django is "Boring Software" And I mean this in the nicest way possible

Slide 40

Slide 40 text

Andrew Godwin / @andrewgodwin The Web went all-in on SPAs But it seems that wasn't the right choice for everything…

Slide 41

Slide 41 text

Andrew Godwin / @andrewgodwin What is Django? Is it complete? Do we have a goal?

Slide 42

Slide 42 text

Andrew Godwin / @andrewgodwin APIs rule the Earth Ideally just one set for all your apps

Slide 43

Slide 43 text

Andrew Godwin / @andrewgodwin Django Rest Framework is good… …but I think FastAPI and Pydantic have some nice ideas too

Slide 44

Slide 44 text

Andrew Godwin / @andrewgodwin HTMX shows us a different way (I've tried, I'm just not a React/Vue/etc. person)

Slide 45

Slide 45 text

Andrew Godwin / @andrewgodwin {% csrf_token %} {{ form|crispy }}

Slide 46

Slide 46 text

Andrew Godwin / @andrewgodwin def create_print(request): if request.method == "POST": form = PrintForm(request.POST) if form.is_valid(): if not request.htmx: # Do stuff else: form = PrintForm() if request.htmx: return render(request, "create/_print_form.html", {"form": form}) else: return render(request, "create/print.html", {"form": form})

Slide 47

Slide 47 text

Andrew Godwin / @andrewgodwin So what can Django become? Is there a singular goal?

Slide 48

Slide 48 text

Andrew Godwin / @andrewgodwin What do today's developers need? What do we aim for? Who knows best?

Slide 49

Slide 49 text

Andrew Godwin / @andrewgodwin First-party API framework Inspired by DRF, FastAPI and others HTMX templating and form handling Doesn't have to be first-party, already some plugins Separately-useable ORM? I literally first heard this idea at DjangoCon in 2008

Slide 50

Slide 50 text

Andrew Godwin / @andrewgodwin But that's just what I want Django's best when we all work together and balance needs

Slide 51

Slide 51 text

Andrew Godwin / @andrewgodwin Big features are driven by individuals They need someone to take the wheel and work to a vision

Slide 52

Slide 52 text

Andrew Godwin / @andrewgodwin You can inspire our future. And plenty of us are here to help out.

Slide 53

Slide 53 text

Thanks! Andrew Godwin @andrewgodwin // aeracode.org