Django community: RSS
This page, updated regularly, aggregates Community blog posts from the Django community.
-
Django News - Issue 25 - May 29th 2020
News Pipenv new release A major new release for Pipenv, the first since 2018! pypa.io PSF on Twitter: "The deadline to sign up to vote in @ThePSF upcoming election is May 31 AOE. To vote you need to be a PSF fellow, contributing, supporting and/or managing member. Membership info can be found here: https://t.co/W2H2ShVTDr" The PSF's annual elections are this June. If you are not a member and want to be one, sign up before May 31 AOE to vote this year. twitter.com Articles A tour of Django server setups See what Django in production visually looks like with diagrams. mattsegal.dev Abusing the Django Admin app Ken Whitesell walks us through automatically registering all of the models in our app while providing a custom ModelAdmin class to make their display useful. This technique is useful when dealing with a large number of models or a legacy database when you don't want to create 200 ModelAdmins. dev.to Handling SEO with Wagtail CMS Adonis Simo walks us through how to make Wagtail more SEO friendly. adonissimo.com How to Get Hired as a Django Developer Practical advice on finding work as a professional Python/Django programmer. learndjango.com Waiting in asyncio While not directly written … -
Book Review: Speed Up Your Django Tests
-
Book Review: Speed Up Your Django Tests
-
Bread and Butter Django - Building SaaS #58
In this episode, I worked on a views and templates. There are a number of core pages that are required to flesh out the minimal interface for the app. We’re building them. I began by showing the page that we were going to work on. I outlined the changes I planned to make, then we started. The first thing we added was data about the school year, the main model on display in the page. -
Django and Robot Framework
One of my colleagues has spent a bunch of time investigating and then implementing some testing using [Robot Framework](https://robotframework.com). Whilst at times the command line feels like it was written by someone who hasn't used unix much, it's pretty powerful. There are also some nice tools, like several Google Chrome [plugins](https://chrome.google.com/webstore/detail/robotcorder/ifiilbfgcemdapeibjfohnfpfmfblmpd) [that](https://chrome.google.com/webstore/detail/chrome-robot/dihdbpkpgdkioobahfpnkondnekhbmlo) will record what you are doing and generate a script based upon that. There are also other tools to [help build testing scripts](https://chrome.google.com/webstore/detail/page-modeller-selenium-ro/ejgkdhekcepfgdghejpkmbfjgnioejak). There is also an existing [DjangoLibrary](https://pypi.org/project/robotframework-djangolibrary/) for integrating with [Django](https://www.djangoproject.com/). It's an interesting approach: you install some extra middlewary that allows you to perform requests directly to the server to create instances using [Factory Boy](https://factoryboy.readthedocs.io/), or fetch data from Querysets. However, it requires that the data is serialised before sending to the django server, and the same the other way. This means, for instance, that you cannot follow object references to get a related object without a bunch of legwork: usually you end up doing another `Query Set` query. There are some things in it that I do not like: * A new instance of the django `runserver` command is started for each Test Suite. In our case, this takes over 10 seconds to start … -
Django and Robot Framework
One of my colleagues has spent a bunch of time investigating and then implementing some testing using [Robot Framework](https://robotframework.org). Whilst at times the command line feels like it was written by someone who hasn't used unix much, it's pretty powerful. There are also some nice tools, like several Google Chrome [plugins](https://chrome.google.com/webstore/detail/robotcorder/ifiilbfgcemdapeibjfohnfpfmfblmpd) [that](https://chrome.google.com/webstore/detail/chrome-robot/dihdbpkpgdkioobahfpnkondnekhbmlo) will record what you are doing and generate a script based upon that. There are also other tools to [help build testing scripts](https://chrome.google.com/webstore/detail/page-modeller-selenium-ro/ejgkdhekcepfgdghejpkmbfjgnioejak). There is also an existing [DjangoLibrary](https://pypi.org/project/robotframework-djangolibrary/) for integrating with [Django](https://www.djangoproject.com/). It's an interesting approach: you install some extra middleware that allows you to perform requests directly to the server to create instances using [Factory Boy](https://factoryboy.readthedocs.io/), or fetch data from Querysets. However, it requires that the data is serialised before sending to the django server, and the same the other way. This means, for instance, that you cannot follow object references to get a related object without a bunch of legwork: usually you end up doing another `Query Set` query. There are some things in it that I do not like: * A new instance of the django `runserver` command is started for each Test Suite. In our case, this takes over 10 seconds to start … -
JWTs and AI - David Sanders
David Sanders personal sitedjango-rest-framework-simplejwtDjangoCon US 2014 - JSON Web TokensDjangoCon US 2018 - Finally Understand Authentication with Django REST FrameworkPlease Stop Using LocalStorageEthereumUnsupervisedAI Superpowers book -
Saving GeoPoints Using Django Form
A while ago I was working on a project where I had a map which was part of a simple form. User can select a point on the map and submit. Form’s responsibility was to get the submitted data, validate it and save into database if everything is fine. I was using MySQL with GIS support. During the development I faced a couple of issues that I’d be addressing here and how did I fix them. Let’s begin! Consider the below example from django.contrib.gis.db import models class Location(models.Model): coordinate = models.PointField(blank=True, null=True) # many more fields If you see the Django generated migration file for this model, you will notice that the default value of srid parameter is 4326 although we never provided that explicitly in the model definition. This is how migration will look like. operations = [ migrations.CreateModel( name='Location', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('coordinate', django.contrib.gis.db.models.fields.PointField(blank=True, null=True, srid=4326)), ], ), ] The default value of srid is being propagated from a base class BaseSpatialField, the PointField has been inherited from. We can always change this value as per requirements but in most cases default value would be sufficient. Let’s try to save some Geo coordinates through the … -
Debugging a Containerized Django App in VS Code
In this article, we'll show you how to configure Visual Studio Code (VS Code) to debug a Django app running inside of Docker. -
Creating a Kubernetes Cluster on DigitalOcean with Python and Fabric
This tutorial demonstrates how to automate the setup of a Kubernetes cluster with Python and Fabric on DigitalOcean. -
Django News - Virtual Meetups Galore - May 22nd 2020
News Test pip’s alpha resolver and help us document dependency conflicts – Bernard Tyers The pip team needs your help testing the dependency resolver. They specifically are looking for projects with complex dependencies which are prone to fail. If this sounds like you, please help them out. ei8fdb.org Admin accessibility - Google Groups Via Adam Johnson, "Interested in helping increase Django's accessibility? Chime in on this discussion started by Tom Carrick." google.com Articles Second-guessing the modern web A critical look at the SPA + API backend pattern currently en vogue. macwright.org Leverage the InnoDB architecture to optimize Django model design What every developer should know about InnoDB. medium.com Optimizing Django ORM Queries An under-the-hood look at Django's ORM. schegel.net The Fast Way to Test Django transaction.on_commit() Callbacks Performance tips on Django tests from Adam Johnson. adamj.eu Sponsored Link Two Scoops of Django 3.x: Best Practices for the Django Web Framework The long-awaited update covers various tips, tricks, patterns, code snippets, and techniques of Django best practices. feldroy.com Videos PyCon 2020 - Finite State Machine (FSM) in Django Calvin Hendryx-Parker on using django-fsm ti build quick, lightweight business workflows for Django applications. youtube.com PyCon 2020 - Big O No Chris Seto … -
Django Celery Tutorial Series
This Django Celery tutorial series teaches you how to use Celery with Django better. -
Django Celery Tutorial Series
This Django Celery tutorial series teaches you how to use Celery with Django better. -
Wagtail query for scheduled pages
Wagtail has "scheduled" pages that are not visible on the site. I think the interface is not ideal as you need to click the Publish button after setting a publication date on the Settings tab. I'm not sure how exactly the data models work, but the actual publication is handled by a management command and putting the publication date into the future after the post was published doesn't seem to unpublish it. I wanted to get a list of pages that were scheduled for publication, the query below might not handle all edge cases but shows how I got what I needed. Raw MyPageModel.objects.filter(go_live_at__isnull=False).not_live() -
Switch A Django Project To Use Pytest - Building SaaS #57
In this episode, I replaced the default Django test runner to use pytest. We walked through installation, configuration, how to change tests, and the benefits that come from using pytest. We started by looking at the current state of the test suite to provide a baseline to compare against. After that, I went to PyPI to find the version of pytest-django that we wanted to install. I added the package to my requirements-dev. -
Waiting in asyncio
One of the main appeals of using asyncio is being able to fire off many coroutines and run them concurrently. How many ways do you know for waiting for their results? -
Python at Microsoft- Nina Zakharenko
Nina’s website Learn Python FrontendMasters Course Goodbye Print Hello Debugger at DjangoCon US 2019 & PyCon2020 PythonTutor@nnja on Twitter Nina on Twitch Nina’s Frontend Masters author pageGetting Started with Python in VS CodeVS Code - Device Simulator Express ExtensionMicrosoft MakeCode - Block Based Programming for Hardware Emulator4 new *Python/Django video tutorials for productive cloud development -
De-Google my blog - How to blog in 2020 without Google
Hi everyone! Right now I have Google almost completely out of my life, but some of the top commentaries of my posts in /r/degoogle and /r/selfhosted were “Your blog still uses google for resources lol”, so I needed to change that. Shame. In my old blog, the features that used Google where: Disquss comments The Ghost theme Before we begin, I want to let you know that all these fixes have been applied, so you are currently experiencing the final result. Fixing comments I was using disquss to handle comments, since it is what everyone recommends. I checked the network resources on my site and found something horrible: A bunch of random calls to a bunch of external addresses, not just Google. Since I care about my reader’s privacy, disquss had to go. Someone in /r/degoogle suggested “Commento”, and it looked like it was exactly what I needed: A free and opensource, self-hosted alternative to disquss, and it also had an official docker release! According to their documentation: version: '3' services: server: image: registry.gitlab.com/commento/commento restart: always ports: - 5000:8080 environment: COMMENTO_ORIGIN: https://commento.rogs.me COMMENTO_PORT: 8080 COMMENTO_POSTGRES: postgres://postgres:mysupersecurepassword@db:5432/commento?sslmode=disable COMMENTO_SMTP_HOST: my-mail-host.com COMMENTO_SMTP_PORT: 587 COMMENTO_SMTP_USERNAME: mysmtpusername@mail.com COMMENTO_SMTP_PASSWORD: mysmtppassword COMMENTO_SMTP_FROM_ADDRESS: mysmtpfromaddress@mail.com depends_on: - db db: … -
De-Google my blog - How to blog in 2020 without Google
Hi everyone! Right now I have Google almost completely out of my life, but some of the top commentaries of my posts in /r/degoogle and /r/selfhosted were “Your blog still uses google for resources lol”, so I needed to change that. Shame. In my old blog, the features that used Google where: Disquss comments The Ghost theme Before we begin, I want to let you know that all these fixes have been applied, so you are currently experiencing the final result. Fixing comments I was using disquss to handle comments, since it is what everyone recommends. I checked the network resources on my site and found something horrible: A bunch of random calls to a bunch of external addresses, not just Google. Since I care about my reader’s privacy, disquss had to go. Someone in /r/degoogle suggested “Commento”, and it looked like it was exactly what I needed: A free and opensource, self-hosted alternative to disquss, and it also had an official docker release! According to their documentation: version: '3' services: server: image: registry.gitlab.com/commento/commento restart: always ports: - 5000:8080 environment: COMMENTO_ORIGIN: https://commento.rogs.me COMMENTO_PORT: 8080 COMMENTO_POSTGRES: postgres://postgres:mysupersecurepassword@db:5432/commento?sslmode=disable COMMENTO_SMTP_HOST: my-mail-host.com COMMENTO_SMTP_PORT: 587 COMMENTO_SMTP_USERNAME: mysmtpusername@mail.com COMMENTO_SMTP_PASSWORD: mysmtppassword COMMENTO_SMTP_FROM_ADDRESS: mysmtpfromaddress@mail.com depends_on: - db db: … -
How to auto-reload Celery worker on Code Change
In this Django Celery tutorial, I would talk about how to auto-reload Celery worker on code change. -
How to auto-reload Celery worker on Code Change
In this Django Celery tutorial, I would talk about how to auto-reload Celery worker on code change. -
The Fast Way to Test Django transaction.on_commit() Callbacks
Django’s transaction.on_commit() hook is useful for running tasks that rely on changes in the current database transaction. The database connection enqueues callback functions passed to on_commit, and executes the callbacks after the current transaction commits. If the transaction is rolled back, the callbacks are discarded. This means they act if-and-when the final version of the data is visible to other database connections. It’s a best practice to use on_commit for things like sending external emails or enqueueing Celery tasks. (See my previous post Common Issues Using Celery (And Other Task Queues).) Unfortunately, testing callbacks passed to on_commit() is not the smoothest. The Django documentation explains the problem: Django’s TestCase class wraps each test in a transaction and rolls back that transaction after each test, in order to provide test isolation. This means that no transaction is ever actually committed, thus your on_commit() callbacks will never be run. If you need to test the results of an on_commit() callback, use a TransactionTestCase instead. TransactionTestCase is correct and works for such tests, but it’s much slower than TestCase. Its rollback behaviour flushes every table after every test, which takes time proportional to the number of models in your project. So, as your … -
Centralized Logging with Django, Docker, and CloudWatch
Let's look at how to configure a containerized Django app running on an EC2 instance to send logs to AWS CloudWatch. -
"Speed Up Your Django Tests" is Out Now
My previously announced book “Speed Up Your Django Tests” is out now on Gumroad. I’ve been writing since the 3rd March, so it’s quite a relief to have launched it. Since I announced the book for pre-order two weeks ago, I received 52 pre-orders. And since the release two hours ago, I have even received a full price order :) This was really encouraging and I’d like to thank everyone who ordered. The release is definitely a first version of the book. I set myself an ambitious deadline, in order to constrain Parkinson’s Law, but this also meant I cut a lot of content. I have 24 issues open in the book’s repo, and 42 “TODO” comments sprinkled through the source! I’m looking forward to reader feedback to guide the next edition. Thanks I’d like to thank everyone who helped me put this book together. Thanks to my partner Mafalda for her love, encouraging me to carry on when I needed it, and encouraging me to stop at the end of the day. Thanks to my parents - my mum for sharing her experience as an author, and my dad for proofreading this book with the same care he applied … -
Deploying Vault and Consul
This tutorial shows how to deploy Vault and Consul with Docker Swarm.