Welcome everyone to this section of the course, which will give an introduction to the general framework
in this lecture, we're going to have a brief overview of what the jingo framework is and a little bit
of its history, as well as why we would want to use Django, the pros and cons of Django and some example
websites that use Django.
Afterwards, we're gonna have a separate series of lectures that focuses on the specifics of how the
Django framework operates and works.
OK, so we already know the general basics of the website process separated out into a front end and
back end, and Django, written with Python, focuses on the back end of the website.
So let's give you a little bit of history about the Django framework.
So Jenga was created by Adrian Hull, Vardy and Simon Wilson in 2003, when they both were working at
the Lawrence Journal World newspaper.
And it has now expanded to a much larger open source project, which was released under IPC license
in 2005 and all the way back in 2008.
The non-profit Jingo Software Foundation was created to maintain and update the jingo framework, and
it has a very fine schedule of updates, with new versions coming online all the time, and it's constantly
being maintained for security updates, which we'll talk about later on.
You should also take note of the fact that this project was started a newspaper which has created a
culture of very good online documentation for Django because you had a bunch of journalists operating
and using this actual product.
So because of that, there was this culture of having very clear online examples and documentation.
You can check this out at Django Project XCOM, but just keep in mind, we're going to be revisiting
this website quite a bit throughout the rest of the course.
And as a fun fact, this is actually named after Django Reinhardt because one of the developers who
created Django was a big fan of jazz guitar and Django Reinhardt himself as a jazz guitarist.
And a fun fact about Django Reinhardt is if you take a look at his left hand there, you can see that
he actually suffered very bad burns when he was a teenager, and doctors said he was never going to
be able to play guitar again, and he lost the ability to move his pinkie and ring finger on his left
hand.
However, he overcame that and was able to become one of history's best jazz guitars.
So if Django Reinhardt was able to become a master jazz guitar player, we should be able to become
Master Django Web developers.
So let's get into a little more detail of what is Django?
It's a Python based framework for creating web applications, and the framework allows us to have rules,
structures and functionality to use Python code and libraries on the back end of our web application.
It makes it much easier to develop websites, and because Django is specifically created with Python,
it allows us to leverage a lot of prior Python knowledge.
So as I mentioned, Python's the programming language used to work with Django, that means Django can
then interact for web applications to send information to the user of the web application.
Now, the question that always comes up is why would I actually want to use jingo?
Well, there's a couple of key features.
It allows for fast development.
Once you understand the way Django actually runs and operates, it's a little bit of a steep learning
curve.
But once you get it, you can really create websites quite quickly.
Most importantly, it also has many common features included, which I'll mention later on.
It's updated often and secure by the Open Source Foundation.
And it's very scalable and very versatile with Python.
Now, let's talk about this idea of many common features being included.
So you may have heard the fact that Django has, quote unquote batteries included or is fully loaded.
This just means that has a lot of Python modules that take care of really common web application features.
For example, if you're creating a web application, it's very likely you're going to want to have some
sort of administration capabilities that is an admin that can log in and maybe edit accounts or check
information on your database.
Django already has those features built in other features.
It has built in our authentication features.
If you want users to have to have authorization or authentication with password access and usernames,
etc. that's built into Django already, and it's easy to add on to your web application.
Other things, like easy to use database interactions and security features are included in Django,
which is why has this reputation of having a lot of features already included in it?
So one of the other most important aspects of Django is the fact that since it uses Python as its programming
language, we get to use all those awesome and cool Python libraries easily within Django.
For example, let's imagine that your favorite data analysis tool happens to be written in Python.
Maybe you're a fan of pandas, numpy or psychic learn, and you have some sort of program that uses
those really cool Python libraries because Django is written in Python.
That means we can easily integrate the two as using our Python code along the Django framework, which
expands Python based projects to become user interactive web applications.
So the pros of Django are that there's lots of features already built in.
It's built with Python, which allows you to leverage all those other Python libraries.
And it's scalable, versatile and secure.
So what are the cons of Django?
Obviously, we don't think there's too many cons, otherwise we wouldn't have made this course.
But since it does have so many features, there is a bit of a steep learning curve to get good at working
with Django.
The whole purpose of this course, though, is to guide you through that learning curve and get you
up and running as quickly as possible.
So if you're in this course, I wouldn't really put that as a comment, since the whole purpose here
is that that won't be an issue for you by the end of this course.
One possible con, though, is that it ends up including many features you don't intend on using.
If you're just trying to develop a very simple site that maybe is just a static web page, Django may
be overkill for that sort of website.
So it's something to keep in mind of.
Do I need all these features of Django or what a simple HTML a little bit of CSS actually work as my
website.
Now you'll notice I put in Django Pros that built with Python was a good feature of Django, but technically
it could also be a con if you are operating within an organization where no one is actually using Python.
But you want to use a web application based with Django.
That means you're introducing this idea of having to learn Python first before you can really work with
Django.
So that may be a con if Python is not very popular at your organization, or if perhaps you, the user,
they'll actually know Python.
That's going to be something else you have to learn in order to actually use Django.
So it's something to keep in mind, especially when you're working with other colleagues in a larger
organization.
You are technically introducing a new language that is Python in order to work with Django.
OK, so who uses Shingo?
There are a ton of websites and popular companies that are using Django, Instagram, YouTube, Spotify,
Dropbox, Pinterest, Eventbrite and many more.
So hopefully you have the notion here that if Django is good enough for these huge companies and web
sites, it will probably be good enough for our own web applications and versatile enough for our needs.
OK, we've only briefly given you an overview of the jingo framework, and at this time, I would suggest
that you're good at Jingo Project Accom and have a browse through the documentation in the next lecture
and series of lectures.
We're going to dive into a lot more detail of how the framework is designed and operates, which you'll
notice is going to end up relating highly to the upcoming sections in which we learn about these core
components that Django is built from.
OK.
Thanks.
And I'll see you at the next lecture.