To see our schedule with full functionality, like timezone conversion and personal scheduling, please enable JavaScript and go here.
09:00
09:00
15min
Welcome to DjangoCon Europe 2021
Main Room
09:15
09:15
45min
Programming for pleasure
Daniele Procida

As programmers, we’re very lucky - our work is often creative and enjoyable, and the culture of programming itself is inventive and playful. Programming can be a pleasure in itself. What we don’t usually recognise is that the effect of this is to make the software we create worse rather better. If we want to make better software, we need to start programming not for pleasure, but for pain.

Main Room
09:45
09:45
50min
Getting started with React, GraphQL, and Django
Aaron Bassett

What is GraphQL? When would I use it instead of DRF? How does it work with my models? In this session, we'll answer all these questions and more as we walk through a working example of a React, GraphQL, and Django application.

Secondary Room
10:00
10:00
45min
Unlocking the full potential of PostgreSQL indexes in Django
Haki Benita

Developers who are not familiar with databases often fear them, and prefer to treat them like a blackbox. Indexes are extremely powerful and Django provides many ways of using indexes to make queries faster.

In this talk I’ll present advanced indexing technics in PostgreSQL using the Django ORM.

Main Room
10:45
10:45
45min
Your very own real time chat with Django Channels
Amanda Savluchinske

Does building your real time chat with Django sound fun to you? Let’s get some help from Django Channels in order to do so. In this talk I’d like to illustrate how we can use Django Channels for various purposes by showcasing its concepts and diverse use cases.

This talk will cover beginner topics around django-channels and will teach attendees the basics in order to build a simple real time chat using the library.

Main Room
11:30
11:30
45min
Telepath - adding the missing link between Django and rich client apps
Matt Westcott

Introducing a new approach to sharing data models between Python and JavaScript, to help in building Django apps with rich client-side functionality.

Main Room
12:00
12:00
50min
Teaching cPython, Turtle Graphics, and Jinja2 in the Browser
Christopher Lozinski

By the end of this class you will have the tools to teach Python, Jinja2 and web development to a class of remote students.

Secondary Room
12:15
12:15
45min
(A) SQL for Django
Stefan Baerisch

Django's ORM is full-featured, simple to use, and well-suited for almost all interactions with your database. But sometimes, to get better performance or to get data in just the format that you need, it is useful to have the full expressiveness of SQL in your Django application.

In this talk, we will look at using SQL with Django. We will see in which situations the use of SQL makes most sense. You will see the power of SQL and the best ways to use SQL with Django.

We will start with a short review of SQL and of use cases for which SQL gives you more fine-grained control and better results than Djangos ORM. Then, we look at raw SQL queries and RawQuerySets. RawQuerySets make it possible to get model instances with custom SQL. Finally, we learn how to directly work with Django SQL connections and use SQL change your data or get results that don't fit any particular model instance.

Main Room
13:00
13:00
50min
Break
Main Room
13:50
13:50
75min
KEYNOTE | How to be a djangonaut in a climate emergency
Chris Adams

The science on climate spells out the need for rapid, far-reaching, and unprecedented changes to how we work and live. What does this mean for the way we build digital services as djangonaugs?

We’ll explore what we can, and should be doing as professional technologists in a climate emergency, the patterns emerging for more sustainable software engineering, and what a django designed to be the best choice for building future climate tech services might look like.

Main Room
15:05
15:05
45min
Full-stack Django Rest Framework
Thiago Garcia da Silva, Israel da Silva Teixeira

In this talk, we want to share our experience going beyond JSON APIs and using more Serializers and Renderers' features to create full-stack applications using Django Rest Framework

Main Room
15:30
15:30
50min
Django Sketchnoting Challenge
Sara Peeters

Sketchnoting is the process of taking visual notes by combining symbolic illustrations and text. In this workshop we will learn the basics of sketchnoting first. And then we will make visual notes about Django concepts! Grab a pencil and some paper, and let's sketch!

Secondary Room
15:50
15:50
45min
Writing Safe Database Migrations
Markus Holtermann

Whether you build Django projects or apps, you won’t get past database migrations. Let me show you some pitfalls, potential problems, and how to write safe ones.

Main Room
16:35
16:35
45min
Hunting Performance in Django Code
Sümer Cip

This talk aims to explain the core concepts/use cases of various profilers in Python/Django world. I will walk over the different types of profilers and the basic use cases for them. The variance in Python Profiling tools we have today can actually be very useful if you know how and when to use them.

Main Room
17:20
17:20
45min
Domain Driven Design with Django and GraphQL
Patrick Arminio

Domain driven design is starting getting traction in the Python world, probably also thanks to Architecture Patterns with Python (https://www.cosmicpython.com/).

In this talk we will learn some basics of Domain Driven Design and how to apply the pattern when using Django and GraphQL. We will see different approaches of modelling the domain, and discuss the tradeoffs. We will discuss why this approach makes a lot of sense with GraphQL and finally we will see a complex approach where we leverage the domain driven architecture to have an easy way to abstract how we store and cache our data in order to build a performant GraphQL API.

Main Room
18:05
18:05
25min
Closing Day 1
Main Room
18:35
18:35
60min
Social Track
Main Room
09:00
09:00
15min
Opening Day 2
Main Room
09:15
09:15
45min
Dynamic static sites with Django and Sphinx
Carlton Gibson

You're building a content site? Can't face a CMS? Well have the best of all worlds!

Write your site content in Markdown. Manage it on the file system with git.
Use all the power of Sphinx to build your site, but server it with Django.

Cross-referencing, content super-powers meet auth, forms, interactivity,
dynamic content and all the rest of it. .

You don't have to choose, and you don't have to roll your own either.

Main Room
09:45
09:45
50min
Profiling Django & Python apps
Jérôme Vieilledent, Sümer Cip

It is difficult to improve what is not measurable! Profiling an application should always be the first step in trying to improve its performance. With this workshop, learn how to identify performance issues in your application and adopt the best profiling practices in your daily development habits. This workshop will use the Blackfire.io tool to help you identify performance leaks.

Secondary Room
10:00
10:00
45min
Anvil: Full Stack Web with Nothing but Python
Meredydd Luff

What if we could build our front ends in Python too? Anvil is a framework to get us there: no HTML, JS, CSS, React, Bootstrap or Webpack required!

Instead, how about a Python UI toolkit, a drag-and-drop designer, and a full-stack runtime that doesn't require you to squeeze all your application state over JSON and HTTP? Find out how it's done, and why I think it's a good idea.

Main Room
10:45
10:45
45min
Hacking Django Channels for Fun (and Profit)
Calvin Hendryx-Parker

Django is growing some great async features and Channels has been great for handling websockets connecting from your visitor's browser. But what happens when you need to do more? What if you want to keep long-running connections from Django to other websockets, such as Discord servers? How do you do this and still leverage all the batteries included with Django? We will show an approach that makes this all possible and easy as a developer.

Main Room
11:30
11:30
45min
Modern JavaScript for Django Developers
Cory Zue

Many Django developers are intimidated by "modern" JavaScript, and those that aren't tend to throw away much of Django and use it only as an API for a standalone JavaScript front end.

This talk will outline the options for using Django with a modern framework like React or Vue, and deep dive on everything you'd need to know to incorporate modern JavaScript into a Django project without giving up Django's View/Template system.

It will also highlight some of what you gain by embracing modern JavaScript.

Main Room
12:00
12:00
50min
Django Unstuck: Suggestions for common challenges in your projects
Johannes Spielmann

There are some challenges that come up in every Django project. Some of them right at the start: How do I organize my apps? Where do I put the base template, and all the other templates? Should I do internationalization right away?
Other problems only crop up a little later: how do I manage production settings? How do I make sure permissions are checked correctly? How do I make menus appear correctly?
Some may appear at any point in time: how do I add content pages? What code goes into models/controllers/views?

In this workshop, I'm going to tell you how I approach these recurring challenges and what my "best practices" in these situations are.

Secondary Room
12:15
12:15
45min
Clean Architecture with Django: Rethinking basic assumptions
Paul Wolf

There are two main problems in implementing the Clean Architecture (CA) pattern with Django projects: developers are often not clear on what a Clean Architecture would look like with Django and secondly the framework itself resists adaption to the CA paradigm.

Main Room
13:00
13:00
50min
Break
Main Room
13:50
13:50
75min
KEYNOTE | Spreading our tentacles - taking a Django app global
Frederike Jaeger

Imagine you built a pretty snazzy Django app to transform your company's business. You're helping with revolutionising the energy industry to make better use of green energy. Pretty cool right? Now imagine your company is expanding to new countries and not only that, other companies want to use your app too. Even better! But also imagine you wrote that app specifcally with your company in one country in mind. This talk is going to cover the approach we've taken in transforming our app to work for multiple clients in multiple countries while still keeping the core of it the same.

Main Room
15:05
15:05
45min
HTMX: Frontend Revolution
Thomas Güttler

HTMX is a tiny JavaScript library which helps you to avoid JavaScript. Instead of sending JSON over the wire (like React, Vue, ...) it sends HTML fragments over the wire.

It simplifies the toolchain and the result are fast pages with good SEO (web vitals) scores.

Main Room
15:30
15:30
50min
Managing multiple Django services in a single repo
Benjy Weinberger

Django projects are standalone by nature, but with the right tooling and practices you can effectively maintain many interrelated Django services in a single streamlined repo, with minimal boilerplate and copypasta.

Secondary Room
15:50
15:50
45min
You might not need a frontend framework
Afonso Cerejeira

Javascript is eating the world, but it does not need to eat your project too!. In this talk we will explore lightweight frontend solutions for progressively enhancing a Django web page.

Main Room
16:35
16:35
45min
Django with PostgreSQL superpowers
Paolo Melchiorre

Django per se is a database-agnostic web framework, but real-world projects based on it are not. PostgreSQL has the richest feature set of any supported databases and we'll see how to use these superpowers in Django.

Main Room
17:00
17:00
30min
Deploying a Django Virtual Event Platform Using Containers and Terraform
Calvin Hendryx-Parker

Learn to leverage cloud native tools and launch a scalable Python and Django application into the Cloud with Fargate. We’ll dive in with how to getting up and running fast, but leaving the overhead of managing virtual machines and Kubernetes behind. Create and store the application Docker images in a container repository and without touching the AWS console we can create fully Infrastructure as Code automated deployments via CodePipeline into Fargate containers and S3 buckets. Deliver the React application via CloudFront and S3 for full global scalability. Leave the legacy deployments behind and forge bravely into the new world of Cloud Native applications.

Secondary Room
17:20
17:20
45min
How to create a full-stack, reactive website in Django with absolutely no JavaScript
Adam Hill

Utilize Django to build modern, interactive websites without needing a complicated frontend framework.

Main Room
18:05
18:05
25min
Closing Day 2
Main Room
18:35
18:35
60min
Social Track
Main Room
09:00
09:00
15min
Opening Day 3
Main Room
09:15
09:15
45min
Speed up your tests with setUpTestData
Adam Johnson

TestCase.setUpTestData allows you to create test data once per TestCase, rather than once per test. This talk will cover how it works, how it improved in Django 3.2, and how to convert your tests to use it.

Main Room
09:45
09:45
50min
Migrations and understanding Django's relationship with its database
David Wobrock

Do IntegrityError: NOT NULL constraint failed, column cannot be null or OperationalError: no such column ring a bell? Most Django developers experience those either during development, or worse, in production. We'll explore the whys and wherefores of these problems and suggest some solutions in order to improve your experience with Django migrations and make them seamless.

Slides: https://drive.google.com/file/d/13wsg1yYWX0aJrLuA4a-GRnej42GBN1CK/view?usp=sharing

Secondary Room
10:00
10:00
45min
Rewriting Django from (almost) scratch in 2021
Emma Delescolle

You're probably asking yourself "Why would someone wanna do that?". Django is one of the most successful web frameworks out there, the codebase is well established and well tested.

That is true. On the other hand, a codebase that old is bond to have some technical debt.
IMHO, Django's technical debt is mostly situated in the admin which is one of the most appreciated features of Django while at the same time, possessing the least people familiar with its internals or willing to learn them.
Another sort of technical debt is one that is backward compatibility and having to keep choices made more than a decade ago.

Main Room
10:45
10:45
45min
Get interactive! Putting a shell (or a desktop) in your Django app
Florian Haas, Maari Tamm

How to make your Django app speak SSH or RDP with Guacamole, ASGI and Daphne — giving anyone a console or a desktop right in their browser!

Main Room
11:30
11:30
45min
Build, deploy and scale: Django, GraphQL and SPA
dhilipsiva

How to build GraphQL APIs with Django that can serve millions of requests per second? Strategies to deploy your API and SPA for production and non-production workloads.

Main Room
12:00
12:00
50min
Cleanroom Software Engineering with Django
Francisco J. López-Lira Hinojo

Cleanroom software engineering process is a software development process developed at IBM intended to produce software with a certifiable level of reliability. A principal objective of the Cleanroom process is development of software that exhibits zero failures in use. In this workshop we will review how to implement it in a project with the help of Django.

Secondary Room
12:15
12:15
45min
Load Testing a Django Application using LocustIO
Pranjal Jain, Vibhash Chandra

Load testing is critical in the software development lifecycle as it evaluates application performance affected by normal and peak loads by simulating access and usage by multiple users concurrently.

LocustIO, an open source tool written in python, is used for load testing of web applications. It is simple and easy to use with web UI to view the test results. Let's make load testing quick and easy with LocustIO.

Main Room
13:00
13:00
50min
Break
Main Room
13:50
13:50
75min
KEYNOTE | We're all part of this: Jazzband 5 years later
Jannis Leidel (he/him)

The Jazzband project was launched 5 years ago to help maintainers find a way to secure the long-term maintenance of their Python projects. The result was a collective of volunteers that stepped up in a big way on the way to solve Open Source sustainability.

In this talk I'll dive into the history of the project, the good and bad of running the project for >5 years and the next steps for Jazzband.

Main Room
14:30
14:30
35min
From Development to Production, Getting Actionable Insights to Optimize Django Code Performance
Jérôme Vieilledent

Blackfire offers a unique blend of Monitoring and Profiling features. Unlike traditional APMs on the market, it focuses on the quality of the data it collects, rather than its quantity, in order to make sure developers know quickly what they can do to fix issues.

Secondary Room
15:05
15:05
45min
The request/response cycle - a Djangonautic journey
Timothy McCurrach

A Django-layer-focused look at the classic interview question: "what happens when you click a link?". From the initial call to the request handler, through to what it finally returns; a deep dive into Django's handlers and middleware.

Main Room
15:50
15:50
45min
All about The Django Software Foundation (DSF)
Anna Makarudze

The Django Software Foundation (DSF) is the independent foundation established as a 501(c)(3) non-profit that supports the development of Django. The goal of the DSF is to promote, support, and advance its open-source project, the Django Web framework. In my talk, I will give an overview of what the DSF is doing to support the advancement of Django through the various teams, committees, and boards that make up the foundation. I will also talk about how to contribute to the advancement of Django through both code and non-code contributions.

Main Room
16:35
16:35
45min
Serving Files with Django
Jochen Wersdörfer

Is it possible to use just Django to serve static/media files? Even thousands of clients in parallel while saturating at least a 1Gbit link? I believe it is :) (now).

Main Room
16:45
16:45
30min
What about DjangoCon Europe 2022?
David Vaz, Miguel Magalhães

We hosted the last two DjangoCon Europe 2020 and 2021. What about 2022? Who is next?

We will share our experience over the last two years, the good the bad and the ugly.

DjangoCon Europe will go on and following the tradition we will pass over the olympic torch to whoever wants to continue.

The first step is to apply with DSF, but during the submission you will already need to have a general Idea of the overall organization.

Secondary Room
17:20
17:20
45min
Securing Django Applications
Gajendra Deshpande

In this talk, we will focus on two aspects. First, performing penetration testing on Django web applications to identify vulnerabilities and scanning for Open Web Application Security Project (OWASP) Top 10 risks. Second, strategies and configuration settings for making the source code and Django applications secure.

Main Room
18:05
18:05
25min
Closing Remarks DjangoCon Europe 2021
Main Room
18:35
18:35
60min
Social Track
Main Room
09:00
09:00
570min
Sprints Day 1
Main Room
09:00
09:00
570min
Sprints Day 2
Main Room