Django community: Community blog posts RSS
This page, updated regularly, aggregates Community blog posts from the Django community.
-
Django Filters Problem: How To Display All Results When The Filter Is Not Set
If a view extends django-filter's FilterView it may look similar to this: from django_filters.views import FilterView from .filters import JobFilter class JobList(FilterView): model = Job paginate_by = 20 filterset_class = JobFilter JobFilter has a single filter field city that filters jobs by city and generate URL like /jobs/?city=London ... Read now -
Angular API Calls with Django, Part 2: Building the Micro-Blog App
Angular API Calls with Django, Part 2: Building the Micro-Blog App Keith Dechant Sun, 09/09/2018 - 07:24 This is the second part of a two-part series exploring the use of the Angular 6 HttpClient to make API calls against a Django back-end using Django Rest Framework. In the first part, we learned how to authenticate against Django using the Django Rest Framework JWT package. This post demonstrates how to set up the Django models and views for the micro-blogging app, as well as the Angular Service and templates. -
Step 1: Disinterring and Reviving To Life
I shelved/buried my blog when I upgraded to a new Slicehost Linode six years ago. I didn't have it on Github or Gitlab, or on my personal dev machine, and it seemed to be completely purged from my little server. My last hope was the tarball labelled fullbackup.tar.gz in the home dir of the server. Oh, but by the way, my server was out of disk space and I was doing all this while on vacation in rural Nova Scotia, where high speed Internet is still a far-away dream. Step 0: Bytes. Their Burdensome Storage. Their Inscrutable Movement. One of the first things I learned was how to get Linux to expand its volume to use up new capacity generously granted to me by Linode. After trying lots of things and fretting about how I hadn't set up lfs and so on, here's what I found out: You go to the Linode manager site You click the volume you want to increase You set the new size (I pushed it up to the new maximum of my plan) That's it. Well, I think I had to power off my VM while I did that. I can't remember. Anyway, I'm still … -
This Is An Old Blog
This blog started in the winter of 2008. I'd been in the industry for a few years and Django had reached 1.0. I figured it was time to make myself a blog, knowing, even then, that it was completely unnecessary. I just wanted the practice. My last post (something not-that-great about Christmas) was, until now, from December 2012. Anyway, a lot has changed in the software world. I've also caught up with a few things I wish I'd known 10 years ago. So, lacking anything else to write about. I'm going to try and refurbish this blog and write about that. Here's just a few of the things to address: deployment - this thing deployed via git, I wouldn't mind making it into a tidy little docker image Django version - running on Django 1.0, which is only 13 major releases out of date CI/CD - didn't have any, now I want some tests - LOL new server - this thing is snuggled into a janky 14.04 server. I want to move to my new 18.04 server new postgres - the older server's running Postgresql 9.3 new design - It'd be nice if this thing looked a little better disable … -
Django Tips #1: makemigrations command
Why it's a best practice to explicitly call makemigrations -
Django Tips #2: Imports
Python and Django best practices for imports. -
django-registration 3.0
Today I’m pleased to announce the release of django-registration 3.0. This is a pretty big update, and one that’s been coming for a while, so I want to take a moment to go briefly through the changes (if you want the full version, you can check out the upgrade guide in the documentation). This also marks the retirement of the 2.x release series of django-registration; 2.5.2 is on PyPI, and I intend ... Read full entry -
Why Use A DevOps Pipeline Diagram Generator To Visualize Optimization
DevOps, short for development and operations, is a hot topic in the technology sector. That is because optimizing DevOps pipelines is a crucial component of business strategies for many operations today. Recently, new tools have been made available online that make DevOps pipeline optimization much simpler for those professionals responsible for the job. These tools make it possible to create a DevOps process flow diagram that allows you to visualize your entire DevOps process. Find out the advantages of using a DevOps pipeline diagram generator in the post below. The post Why Use A DevOps Pipeline Diagram Generator To Visualize Optimization appeared first on Distillery. -
Why Use A DevOps Pipeline Diagram Generator To Visualize Optimization
DevOps, short for development and operations, is a hot topic in the technology sector. That is because optimizing DevOps pipelines is a crucial component of business strategies for many operations today. Recently, new tools have been made available online that make DevOps pipeline optimization much simpler for those professionals responsible for the job. These tools make it possible to create a DevOps process flow diagram that allows you to visualize your entire DevOps process. Find out the advantages of using a DevOps pipeline diagram generator in the post below. The post Why Use A DevOps Pipeline Diagram Generator To Visualize Optimization appeared first on Distillery. -
Why Use A DevOps Pipeline Diagram Generator To Visualize Optimization
DevOps, short for development and operations, is a hot topic in the technology sector. That is because optimizing DevOps pipelines is a crucial component of business strategies for many operations today. Recently, new tools have been made available online that make DevOps pipeline optimization much simpler for those professionals responsible for the job. These tools make it possible to create a DevOps process flow diagram that allows you to visualize your entire DevOps process. Find out the advantages of using a DevOps pipeline diagram generator in the post below. The post Why Use A DevOps Pipeline Diagram Generator To Visualize Optimization appeared first on Distillery. -
python django
Django Template LanguageThe template language as we explained earlier here we are going to learn more about template language Django template system is not simply python embedded into html this is by design the template system is meant to express presentation not programe logic the django template system provides tags which function similarly to some programming constructs an if tag for boolean tests a for tag for looping etc but these are not simply executed as the corresponding python code and the template system will not execute arbitrary python expressionsTemplatesA template is simply a text file it can generate any text base format (HTML,XML, CSV,etc)which contains variables which get replaced with values when the template is evaluated and tags which control the logic of the templateHere is an example{%extends "base_generic.html"%}{%block title %}{{section .title}}{%endblock%}{%block content%}<h1>{{section.title}}</h1>{%for story in story_list%}<h2><a href="{{story.get_absolute_url}}">{{story.headline|upper}}</a></h2><p>{{story.tease|truncatewords:"100"}}</p>{%endfor%}{%endblock%}VariablesVariables look like this {{variable}} when the template engine encounters a variable it evaluates that variable and replaces it with the result variable names consist of any combination of alphanumeric characters and the underscore ("_") but may not start with an underscore The dot (".") also appears in variable sections although that has a special meaning as indiacated below importantly but we cannot … -
React Basics Tutorial for Django Developers [2018]
In this tutorial, We'll introduce React basics to Django developers. You can use React to build UIs using re-usable components which allows maximum reusability and a virtual DOM that provides better performance. In this tutorial, we'll learn how to include React in a Django template and learn about the basics of React such as components, state and props. But what's virtual DOM? This is the definition from the official React website The virtual DOM (VDOM) is a programming concept where an ideal, or “virtual”, representation of a UI is kept in memory and synced with the “real” DOM by a library such as ReactDOM. This process is called reconciliation. React is nowadays-2018-the most popular front-end library for building User Interfaces. Throughout this tutorial we'll go through a basic understanding of React.js by creating a React application from scratch and step by step. We will focus on the core features of React. After getting the core concepts, you can dive into more learning more comfortably. By following this tutorial, you'll learn: How to get started with React using a <script> tag; How to include React in a Django template; What's a React component; How to create React components; How to use … -
Merging Django ORM with SQLAlchemy for Easier Data Analysis
Development of products with Django framework is usually easy and straightforward; great documentation, many tools out of the box, plenty of open source libraries and big community. Django ORM takes full control about SQL layer protecting you from mistakes, and underlying details of queries so you can spend more time on designing and building your application structure in Python code. However, sometimes such behavior may hurt - for example, when you’re building a project related to data analysis. Building advanced queries with Django is not very easy; it’s hard to read (in Python) and hard to understand what’s going on in SQL-level without logging or printing generated SQL queries somewhere. Moreover, such queries could not be efficient enough, so this will hit you back when you load more data into DB to play with. In one moment, you can find yourself doing too much raw SQL through Django cursor, and this is the moment when you should do a break and take a look on another interesting tool, which is placed right between ORM layer and the layer of raw SQL queries. As you can see from the title of the article, we successfully mixed Django ORM and SQLAlchemy Core … -
Distillery CEO Shares Voice Technology Insight on Forbes
If your business hasn’t started thinking about how it can integrate voice technology, it’s high time to begin. So asserts Distillery CEO and Founder Andrey Kudievskiy in his latest blog on Forbes, “Three Reasons Every Business Should Consider Voice Technology.” The post Distillery CEO Shares Voice Technology Insight on Forbes appeared first on Distillery. -
Distillery CEO Shares Voice Technology Insight on Forbes
If your business hasn’t started thinking about how it can integrate voice technology, it’s high time to begin. So asserts Distillery CEO and Founder Andrey Kudievskiy in his latest blog on Forbes, “Three Reasons Every Business Should Consider Voice Technology.” The post Distillery CEO Shares Voice Technology Insight on Forbes appeared first on Distillery. -
Using Electron with Flask and python-shell
In the previous tutorial, we've seen how to use Electron and python-shell to create Python apps with Electron GUIs. This opens the door for using the modern frontend web technologies, the Node.js and npm modules (the biggest open source repository in the world) and the Python libraries combined to create powerful applications. In this tutorial, we'll use Flask, a popular web framework for building web applications with Python, and Electron to build a desktop application with an Electron GUI. There are many benefits of combining Flask with Electron to build applications, such as: If you are running a Python/Flask web developer, you can use your existing skills to build cross platform desktop applications; If you already have an existing Flask application, you can easily target desktop apps without reinventing the wheel etc. What's Electron? We assume here that you are a Flask developer so an Electron introduction might be useful. Electron is a platform, created by GitHub, to enable developers to create cross-platform desktop applications for Windows, Linux and macOS using web technologies i.e JavaScript, HTML and CSS. Electron is based on Chromium, just like Chrome and Opera (and many browsers) so it's actually a web container. Electron also provides … -
How to Create Custom Django Management Commands
Django comes with a variety of command line utilities that can be either invoked using django-admin.py or the convenient manage.py script. A nice thing about it is that you can also add your own commands. Those management commands can be very handy when you need to interact with your application via command line using a terminal and it can also serve as an interface to execute cron jobs. In this tutorial you are going to learn how to code your own commands. Introduction Basic Example Handling Arguments Positional Arguments Optional Arguments Flag Arguments Arbitrary List of Arguments Styling Cron Job Further Reading Introduction Just before we get started, let’s take a moment to familiarize with Django’s command line interface. You are probably already familiar with commands like startproject, runserver or collectstatic. To see a complete list of commands you can run the command below: python manage.py help Output: Type 'manage.py help <subcommand>' for help on a specific subcommand. Available subcommands: [auth] changepassword createsuperuser [contenttypes] remove_stale_contenttypes [django] check compilemessages createcachetable dbshell diffsettings dumpdata flush inspectdb loaddata makemessages makemigrations migrate sendtestemail shell showmigrations sqlflush sqlmigrate sqlsequencereset squashmigrations startapp startproject test testserver [sessions] clearsessions [staticfiles] collectstatic findstatic runserver We can create our own … -
Using Python with Electron Tutorial
In this tutorial, you'll learn to build GUIs for your Python applications using Electron and web technologies i.e HTML, CSS and JavaScript-this means taking advantage of the latest advancements in front-end web development to build desktop applications but also taking advantages of Python and the powerful libraries it has to easily implement advanced requirements. You can find the code in this GitHub repository. Electron Tutorial Electron allows you to develop desktop applications with web technologies such as JavaScript, HTML and CSS by providing a web container and a runtime with rich native cross-platform APIs. You could also think of it as a Node.js environment for desktop apps. Electron Applications Architecture In Electron, you have two types of processes; the Main and Renderer processes. The main process is the one that runs the main script in the package.json file. This script can create and display GUI windows, also many Electron APIs are only available from the main process. An Electron application has always only one main process. Electron makes use of the chromium browser to display web pages. Each web page runs on its own process called the renderer process. You could also think of Electron as a web browser but … -
Stop Using Executable Code Outside of Version Control
There's an anti-pattern in the development world, and it's for using executable code as a means to store configuration values. In the Python universe, you sometimes see things like this in settings modules: # Warning: This is an anti-pattern! try: from .local_settings import * except ImportError: pass What people do is have a local_settings.py file that has been identified in a .gitignore file. Therefore, for local development you have your project running through an executable code file outside of version control. If this sounds uncomfortable to you, then you are on the right track. Executable code always needs to be in version control. A better approach is to place secrets and keys into environment variables. If you don't like that, or can't use it due to your environment, stick those values into JSON, YAML, or TOML files. So what can happen if you allow the local_settings anti-pattern into your project? The local_settings anti-pattern The local_settings anti-pattern means that you can have executable code in production that usually can't be viewed by developers trying to debug problems. If you've ever experience it, this is one of the worst production debugging nightmares. It worked fine on my laptop! What works locally and … -
Why You Should Consider Adding Voice Technology to Your App
Voice technology is here to stay. We’ve invited smart speakers such as the Amazon Echo, Google Home, Sonos One, and Apple HomePod into our homes and our workplaces. We talk to Siri, Alexa, Cortana, and Google Assistant nearly as easily as we talk to real humans. The trends are clear: Consumers are embracing voice technology, and they’re excited about products and devices that incorporate voice-enabled capabilities. The post Why You Should Consider Adding Voice Technology to Your App appeared first on Distillery. -
Why You Should Consider Adding Voice Technology to Your App
Voice technology is here to stay. We’ve invited smart speakers such as the Amazon Echo, Google Home, Sonos One, and Apple HomePod into our homes and our workplaces. We talk to Siri, Alexa, Cortana, and Google Assistant nearly as easily as we talk to real humans. The trends are clear: Consumers are embracing voice technology, and they’re excited about products and devices that incorporate voice-enabled capabilities. The post Why You Should Consider Adding Voice Technology to Your App appeared first on Distillery. -
Inline building in upcoming Evennia 0.8
Evennia, the Python MUD-server game development kit, is slowly creeping closer to its 0.8 release.In our development branch I've just pushed the first version of the new OLC (OnLine Creator) system. This is a system to allow builders (who may have limited coding knowledge) to customize and spawn new in-game objects more easily without code access. It's started with the olc command in-game. This is a visual system for manipulating Evennia Prototypes.Briefly on PrototypesThe Prototype is an Evennia concept that has been around a good while. The prototype is a Python dictionary that holds specific keys with values representing properties on a game object. Here's an example of a simple prototype:{"key": "My house", "typeclass": "typeclasses.houses.MyHouse"} By passing this dict to the spawner, a new object named "My house" will be created. It will be set up with the given typeclass (a 'typeclass' is, in Evennia lingo, a Python class with a database backend). A prototype can specify all aspects of an in-game object - its attributes (like description and other game-specific properties), tags, aliases, location and so on. Prototypes also support inheritance - so you can expand on an existing template without having to add everything fresh every time. There … -
Distillery Makes the Inc. 5000 — for the Second Year in a Row!
We’re elated to announce that Distillery has again been honored on the Inc. 5000! The 2018 ranking, published August 15, revealed that Distillery’s growth is holding strong, earning us a place on the prestigious list for the second year running. (Last year marked Distillery’s impressive debut as a member of the lnc. 5000.) We couldn’t be more thrilled about the recognition, as it testifies to the fact that all our hard work, investments, and persistence over the past year are continuing to take our company in the right direction. The post Distillery Makes the Inc. 5000 — for the Second Year in a Row! appeared first on Distillery. -
Distillery Makes the Inc. 5000 — for the Second Year in a Row!
We’re elated to announce that Distillery has again been honored on the Inc. 5000! The 2018 ranking, published August 15, revealed that Distillery’s growth is holding strong, earning us a place on the prestigious list for the second year running. (Last year marked Distillery’s impressive debut as a member of the lnc. 5000.) We couldn’t be more thrilled about the recognition, as it testifies to the fact that all our hard work, investments, and persistence over the past year are continuing to take our company in the right direction. The post Distillery Makes the Inc. 5000 — for the Second Year in a Row! appeared first on Distillery. -
django-pipeline and Zopfli
tl;dr; I wrote my own extension to django-pipeline that uses Zopfli to create .gz files from static assets collected in Django. Here's the code. Nginx and Gzip What I wanted was to continue to use django-pipeline which does a great job of reading a settings.BUNDLES setting and generating things like /static/js/myapp.min.a206ec6bd8c7.js. It has configurable options to not just make those files but also generate /static/js/myapp.min.a206ec6bd8c7.js.gz which means that with gzip_static in Nginx, Nginx doesn't have to Gzip compress static files on-the-fly but can basically just read it from disk. Nginx doesn't care how the file got there but an immediate advantage of preparing the file on disk is that the compression can be higher (smaller .gz files). That means smaller responses to be sent to the client and less CPU work needed from Nginx. Your job is to set gzip_static on; in your Nginx config (per location) and make sure every compressable file exists on disk with the same name but with the .gz suffix. In other words, when the client does GET https://example.com/static/foo.js Nginx quickly does a read on the file system to see if there exists a ROOT/static/foo.js.gz and if so, return that. If the files doesn't exist, …