My Experience with Django

    I learned Django because I was applying for a part-time job as a web-developer for a company called Bright Bridge Web, where I work currently. It's a part-time gig, but it's given me some nice experience working on multiple projects in different languages and frameworks. Most of the code I write is for back-end Django API's, often with React-Native front-ends.

    I got started by watching this PluralSight video by Reindert-Jan Ekker, and following along with his code. We built a meeting planner site, and my code for that can be found here. I have mixed feelings about Django; on one hand it's a great way to get something up and running quickly. Since everything is in Python the syntax is usually exactly what you expect. The Django API I work on is simple and easy to edit and add to. 

    On the other hand, routing in Django is just a pain. It feels like writing boiler-plate code, but if you mess it up it can cause unexpected errors (I've heard Django-Mako-Plus can help alleviate this, though I have yet to use it in my projects). Also, in my experience it's easy to get disorganized since there doesn't seem to be a lot of standard conventions in Django. The versatility here is a downside, when every Django project is like a snowflake. On top of that, Django isn't light like React, it comes with dependencies you may never use.

    In my opinion, Django is easy to learn but difficult to master, and with so many other frameworks available I don't know that Django would be my first choice for most projects, unless you were doing something with machine learning or data science. My favorite things I've done in Django have really just been using Python to write algorithms, like when I wrote an algorithm to calculate a hygiene score from a list of hygiene events (brushing your teeth, flossing, etc.). Some events counted as primary events or secondary events, and had different values depending on the type of event. Writing something like this in Python was quick and simple. Django's biggest upside might simply be it's access to Python. I should learn Flask.


Popular posts from this blog

API's in C#

Using WebRTC to build a videophone in React and TypeScript

Reviewing WPF and MVVM