I was into building my own website and I didn't want it to be PHP this time. I have heard about Python and its Web Frameworks, so with that in mind, I thought, I could finally have a reason to use Python. Before that, I didn't have enough use cases that would force me to try it.
Like most of the people would do, I searched on StackOverflow and other websites to decide on what should be my go-to framework. And like most of you, I have seen Django being suggested (like many times). So it was going to be my choice because I didn't want to waste time trying them one by one. I knew that each framework would have its own weaknesses, so going with Django was the right choice since it came out in 2004 and have seen major releases to this date.
You know, if you are experienced enough, there are actually two important parts of a software. One is documentation, and the other is the community. I don't know about the community (15 years and community should be somewhere). But, the documentation, that is all you want. I used the amateur version at first. I was a newbie to the language and so to the framework. I was going to use it, so followed every one of the tutorials, though, at one point the documentation failed me (due to missing change). But that was where the community came in. Following the StackOverflow question and the answer, I fixed and ready to go as a Django user.
C, C++, and Java are my top-used languages. So you know the feeling of restriction. Python3 is definitely more dynamic in a way that, you don't have to worry about typecasting or type matching because the language is designed to be modular. Everything is like lego. Unlike C++, you don't have implicit definitions, or power user shortcuts. At some point, the language becomes repetition, which is a good thing if you are not developing low-level applications.
I use PyCharm Professional by JetBrains (don't get excited, it is student subscription, which is free). The Django support on that is too good that one can easily confuse whether the code completion is possible because the language supports it or the IDE have the support for the framework. To be honest, I didn't realize, for a quite some time that, PyCharm was aware I was using it for Django, which it was and I just couldn't see it on my low DPI screen. What confused me the most was the URL suggestion even in the templates where it was simply amazing. Most of the features that Django offers right now, is well-integrated.
Before starting Java and mobile application development, I was a PHP coding guy (like a lot). I didn't have an internet connection, but I had PHP 7 and the documentation downloaded, so you know, I really knew how PHP worked. With the power of my background, I can say that what PHP can do is also what Django can do as well.
While using Django one can't help, but realize how everything is well-thought by someone else. I could easily find a solution for a problem that I had that I didn't have to do long problem-solving on a particular need. Say, I didn't like the default admin template, what did I do? I installed
django-jet, of course. I didn't want to use BBCodes. I needed something for articles and posts that is modular, easy to carry. Something easy to rebuild. And what's that? Markdown language. I needed to build a sitemap... Yeah, you get the idea.
The framework for perfectionists with deadlines.
This is how they call it. To be honest, it fulfills that promise.