Are you new to Python and want to get more into building high speed web applications?
Hello, my name is Jamil Spain, Developer Advocate with the IBM Cloud.
And if you're going to get into using Python to build applications,
I'm sure you've heard about Django, which is our topic for today.
So exactly what is Django?
Django is a high speed MVC, we'll get into what that means,
framework for building web apps.
So in order to understand why that's necessary,
let's really break down what you would have to do
to do some type of web application from just learning Python itself.
That generally will require you to do a couple of things, and I'll just list these out a little bit.
First, you got to start by importing the HTTP library.
You're going to more than likely have to open up and pick a port that you want to run on.
You'll then have to expose an endpoint type of method,
have some type of daemon or something that runs on that port that's going to listen for that particular method,
and then you have to manually write that response.
And of course, yes, by all means, you must keep that connection running
so you can keep on answering requests to keep going, so we'll just say "server running".
I wrote all these steps out just to show you all the manual work that it's going to take
for you just to do that first iteration there and much less,
we all know that as we start to use our technology to build applications.
This is just your first.
Your second one, you're going to have to start up from scratch doing all the same thing.
So let's talk about where Django can help when you're working with Python here.
I mentioned earlier that it was a model view controller.
M. V. C.
And these are very popular, there are a lot of videos out here on this kind of paradigm.
But it works by saying, as I start to build this part, you know, notice that I have everything baked into one place.
I define my methods.
I probably have my UI that I'm trying to pull out, and any data that I'm trying to do will all be bundled together.
And that's really how most applications start off.
You know, they start off very monolithically,
one code base, using one language for everything.
And what Model View Controller says is, let's break these up.
So, in the terms of working with Django, what is it going to do?
It's going to first allow you to, let's use this one here, it will first allow you to let's deal with the controller.
The controller is going to give you an interface to define all your routes that your application has to do,
so it'll be "/home", "/about",
and even some dynamic URLs, if you happen to have those.
Services and ID, anything dynamic that can be substitutable here as well.
So those are be defined in one specific file, one place to go, one place to edit.
And so as the controller does, this next job is to pass it off to the view.
All right.
So a direct, do not pass go, I must go to the view where I can now have templates
that describe what my UI should look like.
And this is where you're kind of breaking up the presentation layer
from the actual part that answers the request as it comes in.
So this template is usually going to be templated out to not persist any data inside, OK?
And that's where magically the model comes into play
because we're going to have, let's just say we have a database here.
And the model's job is, it's going to contain all your business logic, OK?
It's going to go out, talk to the database, represent your objects, parse all the data.
So, before the the view renders,
what is going to do is be able to call in a model that it needs for a particular window.
So if this is home, I may pull in my profile model that goes to the database,
puts that information together, and then, as it renders the view,
it puts all that information in there and I can print out my nice table,
whatever type of concept that you're kind of working with.
So it kind of gives you a framework to break all this up.
Every application that I come starts with this and gives me an opinionated format that I can work with.
I know what to do.
I don't have to make all these decisions from scratch every time there.
So let's kind of get into the last part here.
Which I kind of covered a few of.
What are the benefits of doing this?
Well, first, you're going to have the ability to do rapid development.
Being that I already know this where to go, people can work independently.
If I want to go in and just add more routes, I only have one place to go,
which is in my controller where all my routes are defined,
and I know that's isolated to that particular piece here.
I can add more views and more models.
All these things are collectively separated.
So that means that also I'm just an enterprise developer who are working on something else.
Well, we can add different teams that work on different parts without interacting with each other
or causing any problems with the code that we're kind of doing here.
Another thing is going to do, and definitely check out the Django website,
is it's going to provide more services for you to use.
So let's say it will be able to give you security.
You can have things like sessions.
Authentication.
We can go on and on and on,
but there's going to be a huge, extensive library, you can call them,
of plug-ins or other additional capabilities that,
without this, you would have to write a lot of these out of the box.
So it's going to provide you that for you to jump start and go and use.
And then lastly, since we already have this architecture, it is something that is very scalable.
All right.
I can define to grow these from 3 routes to 300 routes, but I have a comfortable way to do that.
A way to define my views,
consolidate all the connections that I need, that my application kind of needs here.
So we just kind of touch the iceberg here.
We talked about what Django is,
the format that it plays and how it structures,
and some of the great benefits that you'll get out of the box.
Hopefully, I recommend that you go out to the Django website
and I look forward to hearing all the exciting things you'll be doing with Django.
Thank you for your time.
If you have any questions, please drop us a line below,
and if you want to see more videos like this in the future, please like and subscribe.