Tools I Learnt About at DjangoCon Europe 2019

DjangoCon Europe 2019 was great fun. I loved meeting old and new friends, giving my talk and workshop, and learning in the other talks.
The talks are now all on the YouTube Channel. If you want to read about each talk, Tobias Kunze live-blogged his notes on each.
I can’t beat Tobias’ summaries. What I can present are the most interesting tools I learnt about. (Interesting to me at least!)
structlog
I learnt about this in Markus Holtermann’s talk Logging Rethought 2: The Actions of Frank Taylor Jr..
Structured logging is great. I’ve previously worked with Fluentd, using it to enforce JSON structured log messages. This included parsing messages from less structured sources, such as Nginx logs, into JSON.
structlog supports outputting structured log messages directly from Python, and has a similar interface to the familiar standard library logging. Also it has a cool beaver with braces as its logo.
django-webpack-loader
I learnt about this in Nathan Gaberel’s talk Take the goRe out of a DjangoReact stack.
Webpack is the front-end JavaScript bundler du jour. django-webpack-loader provides an easy(ish) integration between Django and Webpack.
The talk is worth watching to get an idea how this works. Nathan also recommended are Aymeric Augustin’s React-focussed blog series:
- Making React and Django play well together
- Making React and Django play well together - the “hybrid app” model
- Making React and Django play well together - the “single page app” model
Aymeric shows the two essential ways of combining a JavaScript app with Django:
- The “single page app” model: a standalone JavaScript frontend makes API requests to a backend running on another domain.
- The “hybrid app” model: the same backend serves HTML pages embedding JavaScript components and API requests.
When I next start on a greenfield, cutting-edge JavaScript project, I’ll first refresh myself by going through these resources!
emender
From Mikey Ariel’s talk Docs or It Didn’t Happen. (That I also mentioned in my previous post Improving My Technical Writing.)
This is a Lua-based “test automation framework tailored specifically for product documentation”. I found it interesting to see a framework specifically for this. There are other tools, for example Python-based Sphinx extensions.
Leaflet JS
From Paolo Melchiorre’s talk Maps with GeoDjango, PostGIS and Leaflet.
Leaflet is a JavaScript library for making interactive maps that are mobile-friendly. It looks like it’s straightforward to implement, and the talk detailed a large site using it.
confucius
From Curtis Maloney’s lightning talk “Another View on Handling Settings.”
There was a bit of a lightning talk battle on settings. Curtis’ talk followed Alexander Ryabtsev’s talk from the previous day, which is summarized in his blog post Configuring Django Settings: Best Practices.
Curtis’ new library Confucius aims to be a forward-thinking way of solving these problems, using Python 3’s type annotations and PEP 562’s module-level __getattr__. For example, this could be your Django settings file, on Python 3.7+:
from confucius import BaseConfig
class Config(BaseConfig):
DB_HOST = "localhost"
DB_PORT = 5432
__getattr__ = Config.module_getattr_factory()
The settings, such as DB_HOST, can be overridden from their defaults with their respective environment variables. Pretty neat!
😸😸😸 Check out my new book on using GitHub effectively, Boost Your GitHub DX! 😸😸😸
One summary email a week, no spam, I pinky promise.
Tags: django