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.
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.
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.
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.
Introducing a new approach to sharing data models between Python and JavaScript, to help in building Django apps with rich client-side functionality.
By the end of this class you will have the tools to teach Python, Jinja2 and web development to a class of remote students.
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.
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.
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
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!
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Utilize Django to build modern, interactive websites without needing a complicated frontend framework.
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.
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
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.
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!
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.
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.
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.
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.
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.
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.
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.
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).
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.
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.