Building Data-Driven Web Apps with Flask and SQLAlchemy Transcripts
Chapter: Jinja2 templates
Lecture: Project structure with shared layout
Login or
purchase this course
to watch this video and the rest of the course contents.
0:00
In this last section we talked a bit about
0:02
organizing our templates folder
0:03
and grouping those by where their related views lived.
0:08
We're not quite far enough along in our
0:11
creation of our site to really see that manifest.
0:13
So let me show you. Let me walk you through
0:15
what this is going to look like at the end
0:17
so you can appreciate it a little bit better.
0:19
Over here is what our site's going to look like at the end.
0:23
Notice we have our views folder.
0:25
This is where our html view methods live.
0:29
So in the account when we have stuff
0:32
to do with account and home
0:33
we have like the home and about and packages.
0:35
It'll be like details and popular and so on.
0:37
We're going to organize all of our related templates
0:40
by their view that they come from.
0:42
So over here we're going to say
0:43
all the stuff to do with packages
0:45
is going to be in a sub-folder called packages.
0:47
So we have two views that require html.
0:50
Change it to templates inside the packages views.
0:53
One's called details and one's called popular.
0:55
Those are the names of the methods.
0:57
So it really helps us understand where those go.
1:00
And most of them are going to use this shared layout.
1:03
So we also created a shared folder
1:04
and we gave the file name a underscore at the beginning
1:07
to say, "This is not meant to be used directly."
1:09
Now it's supposed to be consumed by all the other ones.
1:13
So again, our site's really simple.
1:15
You might not need this yet
1:17
but when you have fifty or a hundred templates
1:19
and many many view files and what-not
1:22
it's really confusing to know
1:23
"I want to change this page real quick, how do I get to it?"
1:26
This will make it so much easier.
1:28
So I definitely encourage you to
1:29
organize your stuff this way.
1:30
But you know, not required by Flask
1:33
more suggested by Michael.