---
title: Michael Washburn Jr's Blog | Python
description: Python |
---

Filter by tag

All Tutorials React Engineering Best Practices JavaScript Python Django Product Ownership Web Apps Redux Research

# Posts about Python

[![Django REST framework](https://michaelwashburnjr.com/hs-fs/hubfs/Imported_Blog_Media/django-auth.jpeg?height=370&name=django-auth.jpeg) 

](https://michaelwashburnjr.com/blog/django-user-authentication)

[Python](https://michaelwashburnjr.com/blog/tag/python), [Django](https://michaelwashburnjr.com/blog/tag/django), [Tutorials](https://michaelwashburnjr.com/blog/tag/tutorials)

 November 14, 2017

### [User Authentication with Django REST Framework](https://michaelwashburnjr.com/blog/django-user-authentication)

![Picture of https://4674423.fs1.hubspotusercontent-na1.net/hubfs/4674423/AuthorAvatar.jpg](https://michaelwashburnjr.com/hs-fs/hubfs/AuthorAvatar.jpg?width=30&name=AuthorAvatar.jpg) [Michael Washburn Jr

](https://michaelwashburnjr.com/blog/author/michael-washburn-jr)

User Authentication is a simple concept, but when it comes to properly implementing it in Django, things can get complicated. Django offers an abundance of different authentication mechanisms: `BasicAuthentication`, `TokenAuthentication`, `SessionAuthentication`, and various ways to implement custom authentication mechanisms. 

[Read More](https://michaelwashburnjr.com/blog/django-user-authentication)

[![](https://michaelwashburnjr.com/hs-fs/hubfs/Imported_Blog_Media/python.jpg?height=370&name=python.jpg) 

](https://michaelwashburnjr.com/blog/5-tips-for-writing-better-python)

[Engineering Best Practices](https://michaelwashburnjr.com/blog/tag/engineering-best-practices), [Python](https://michaelwashburnjr.com/blog/tag/python)

 September 26, 2017

### [5 Tips for Writing Better Python](https://michaelwashburnjr.com/blog/5-tips-for-writing-better-python)

![Picture of https://4674423.fs1.hubspotusercontent-na1.net/hubfs/4674423/AuthorAvatar.jpg](https://michaelwashburnjr.com/hs-fs/hubfs/AuthorAvatar.jpg?width=30&name=AuthorAvatar.jpg) [Michael Washburn Jr

](https://michaelwashburnjr.com/blog/author/michael-washburn-jr)

I’ve been writing Python for some time now, and when I reflect on some of the older code I’ve written… I sometimes cringe. For example, when I was just starting out, I wrote this Sudoku game in python (available on GitHub [here](https://github.com/MichaelWashburnJr/PythonSudoku)). I thought that this was one of my better pieces of work at the time. It turns out I can’t even clone and run this because I didn’t add a setup.py or requirements.txt file, a mistake I would never make today!

[Read More](https://michaelwashburnjr.com/blog/5-tips-for-writing-better-python)

[![Why You Shouldn’t Import Functions and Classes Directly in Python](https://michaelwashburnjr.com/hs-fs/hubfs/Imported_Blog_Media/capture-2.jpg?height=370&name=capture-2.jpg) 

](https://michaelwashburnjr.com/blog/shouldnt-import-functions-classes-directly-python)

[Engineering Best Practices](https://michaelwashburnjr.com/blog/tag/engineering-best-practices), [Python](https://michaelwashburnjr.com/blog/tag/python), [Django](https://michaelwashburnjr.com/blog/tag/django)

 September 23, 2017

### [Why You Shouldn’t Import Functions and Classes Directly in Python](https://michaelwashburnjr.com/blog/shouldnt-import-functions-classes-directly-python)

![Picture of https://4674423.fs1.hubspotusercontent-na1.net/hubfs/4674423/AuthorAvatar.jpg](https://michaelwashburnjr.com/hs-fs/hubfs/AuthorAvatar.jpg?width=30&name=AuthorAvatar.jpg) [Michael Washburn Jr

](https://michaelwashburnjr.com/blog/author/michael-washburn-jr)

Today I was doing some programming, trying to finish up an old project that was 80% done, but I never finished. The project is an API for sharing beer ingredient data, being the avid homebrewer that I am. I was in the middle of writing some pretty simple authentication logic, when I found a weird bug in my code. The code, featured below, was pretty straightforward, or so I thought.

[Read More](https://michaelwashburnjr.com/blog/shouldnt-import-functions-classes-directly-python)

[![](https://michaelwashburnjr.com/hs-fs/hubfs/Imported_Blog_Media/coding.jpg?height=370&name=coding.jpg) 

](https://michaelwashburnjr.com/blog/building-webapp-tutorial-part-3)

[Web Apps](https://michaelwashburnjr.com/blog/tag/web-apps), [Python](https://michaelwashburnjr.com/blog/tag/python), [Django](https://michaelwashburnjr.com/blog/tag/django), [Tutorials](https://michaelwashburnjr.com/blog/tag/tutorials)

 August 29, 2017

### [Building a Web App: Django Rest Framework API Development — Part 3](https://michaelwashburnjr.com/blog/building-webapp-tutorial-part-3)

![Picture of https://4674423.fs1.hubspotusercontent-na1.net/hubfs/4674423/AuthorAvatar.jpg](https://michaelwashburnjr.com/hs-fs/hubfs/AuthorAvatar.jpg?width=30&name=AuthorAvatar.jpg) [Michael Washburn Jr

](https://michaelwashburnjr.com/blog/author/michael-washburn-jr)

*This post is part of a series of mine on building web applications from the ground up. It covers everything you need to know to completely finish a web application. If you haven’t been following the series, please go back and [read part 1](https://michaelwashburnjr.com/2017/08/15/building-webapp-tutorial-p1). *

[Read More](https://michaelwashburnjr.com/blog/building-webapp-tutorial-part-3)

[![Django REST Framework](https://michaelwashburnjr.com/hs-fs/hubfs/Imported_Blog_Media/django-rest.jpeg?height=370&name=django-rest.jpeg) 

](https://michaelwashburnjr.com/blog/building-webapp-tutorial-part-2)

[Web Apps](https://michaelwashburnjr.com/blog/tag/web-apps), [Python](https://michaelwashburnjr.com/blog/tag/python), [Django](https://michaelwashburnjr.com/blog/tag/django), [Tutorials](https://michaelwashburnjr.com/blog/tag/tutorials)

 August 22, 2017

### [Building a Web App From the Ground Up: API Setup— Part 2](https://michaelwashburnjr.com/blog/building-webapp-tutorial-part-2)

![Picture of https://4674423.fs1.hubspotusercontent-na1.net/hubfs/4674423/AuthorAvatar.jpg](https://michaelwashburnjr.com/hs-fs/hubfs/AuthorAvatar.jpg?width=30&name=AuthorAvatar.jpg) [Michael Washburn Jr

](https://michaelwashburnjr.com/blog/author/michael-washburn-jr)

*This post is part of a series of mine on building web applications from the ground up. It covers everything you need to know to completely finish a web application. If you haven’t been following the series, please go back and [read part 1](https://michaelwashburnjr.com/2017/08/15/building-webapp-tutorial-p1). *

[Read More](https://michaelwashburnjr.com/blog/building-webapp-tutorial-part-2)

[![building construction site with crane](https://michaelwashburnjr.com/hs-fs/hubfs/Imported_Blog_Media/construction.jpeg?height=370&name=construction.jpeg) 

](https://michaelwashburnjr.com/blog/building-webapp-tutorial-p1)

[Python](https://michaelwashburnjr.com/blog/tag/python), [Django](https://michaelwashburnjr.com/blog/tag/django), [Tutorials](https://michaelwashburnjr.com/blog/tag/tutorials), [React](https://michaelwashburnjr.com/blog/tag/react), [JavaScript](https://michaelwashburnjr.com/blog/tag/javascript)

 August 15, 2017

### [Building a Web App with React and Django: Getting Started — Part 1](https://michaelwashburnjr.com/blog/building-webapp-tutorial-p1)

![Picture of https://4674423.fs1.hubspotusercontent-na1.net/hubfs/4674423/AuthorAvatar.jpg](https://michaelwashburnjr.com/hs-fs/hubfs/AuthorAvatar.jpg?width=30&name=AuthorAvatar.jpg) [Michael Washburn Jr

](https://michaelwashburnjr.com/blog/author/michael-washburn-jr)

So you want to build a web app. Well, what’s stopping you? If you’re reading this, you’ve probably already been programming for some time, but you’re just missing some of the steps. I’ve been there before. I know how frustrating it can be to know 70% of what you need to do to build a killer web app for an idea you have, but not have enough knowledge to take the idea from beginning to end.

[Read More](https://michaelwashburnjr.com/blog/building-webapp-tutorial-p1)

[![Django Server Setup](https://michaelwashburnjr.com/hs-fs/hubfs/Imported_Blog_Media/untitled-drawing.jpg?height=370&name=untitled-drawing.jpg) 

](https://michaelwashburnjr.com/blog/django-server-setup)

[Python](https://michaelwashburnjr.com/blog/tag/python), [Django](https://michaelwashburnjr.com/blog/tag/django), [Tutorials](https://michaelwashburnjr.com/blog/tag/tutorials)

 April 7, 2015

### [Django Server Setup](https://michaelwashburnjr.com/blog/django-server-setup)

![Picture of https://4674423.fs1.hubspotusercontent-na1.net/hubfs/4674423/AuthorAvatar.jpg](https://michaelwashburnjr.com/hs-fs/hubfs/AuthorAvatar.jpg?width=30&name=AuthorAvatar.jpg) [Michael Washburn Jr

](https://michaelwashburnjr.com/blog/author/michael-washburn-jr)

This tutorial will show you how to serve a Django application by using PostgreSQL, Gunicorn, and NGinx on an Ubuntu server. I created this tutorial because when I started configuring my server, I had a lot of trouble finding anything useful when it came to serving Django apps built in Python 3. I found that virtually all the tutorials I could find still insisted on using Python 2. So, this will show you how to turn your Python 3 Django app into a fully fledged website. This tutorial uses the following software with the corresponding versions:

[Read More](https://michaelwashburnjr.com/blog/django-server-setup)