1
00:00:05,570 --> 00:00:13,070
Welcome back so far we've created our about and home pages as well as our pages for handling errors.

2
00:00:13,070 --> 00:00:15,240
Now let's move on to the main two components.

3
00:00:15,250 --> 00:00:18,340
That is the user component and the blog post component.

4
00:00:18,500 --> 00:00:22,940
Before we can really begin to work with views or forms for those components it's probably a good idea

5
00:00:22,940 --> 00:00:28,730
to set up their basic models so let's create a models that py file and set up our blog post model as

6
00:00:28,730 --> 00:00:32,180
well as our user model and then create the databases for them.

7
00:00:32,180 --> 00:00:34,200
Let's head over and begin.

8
00:00:34,220 --> 00:00:34,720
All right.

9
00:00:34,820 --> 00:00:39,980
Let's begin by filling out our models that PI file in case you haven't already created it underneath

10
00:00:39,980 --> 00:00:42,460
the puppy company blog directory or folder.

11
00:00:42,470 --> 00:00:45,190
I have a empty models not file.

12
00:00:45,500 --> 00:00:49,270
So this is my model's not pi and this is what we're going to be filling out right now.

13
00:00:49,670 --> 00:00:59,260
So to begin with we want to do is set up our classes Sugoi to have a user model class and I can pass

14
00:00:59,270 --> 00:01:07,710
here for now as well as a blog post model class SOORLEY say pass there for now.

15
00:01:07,760 --> 00:01:14,190
Now remember typically what we end up doing is we say user and we inherit from D-B model.

16
00:01:14,210 --> 00:01:19,880
So in order to make that work I need to actually set up my database using flasks sequel alchemy.

17
00:01:19,940 --> 00:01:23,430
Now all of that is going to be handled on the in that PI file.

18
00:01:23,630 --> 00:01:26,070
So let's begin to set that up first.

19
00:01:26,120 --> 00:01:29,680
So I'll come back to my in it that PI file directly underneath.

20
00:01:29,690 --> 00:01:31,410
Puppy company blog.

21
00:01:31,430 --> 00:01:36,770
So this is where I have a flask flask and I set up my application and want to add in a couple of more

22
00:01:36,770 --> 00:01:44,840
imports here all say from flask underscore sequel alchemy import sequel alchemy.

23
00:01:44,840 --> 00:01:50,150
And after I have created my application what I know to do is set up my database and I would recommend

24
00:01:50,150 --> 00:01:55,020
that you do as we did in the provided notes and kind of comments out the major components here.

25
00:01:55,100 --> 00:01:57,830
So we'll say this is the database set.

26
00:01:59,690 --> 00:01:59,960
All right.

27
00:02:00,020 --> 00:02:07,220
So I have this new component inside my end at the PI file and I'm going to set up my base directory.

28
00:02:07,770 --> 00:02:12,350
So I'll say and I'm going to use OS did this on an import os as well.

29
00:02:12,840 --> 00:02:13,300
So we'll see.

30
00:02:13,320 --> 00:02:19,230
Import os and the base directory especially stuff we've already seen before will say oh estopped path

31
00:02:19,830 --> 00:02:28,390
take the absolute path and here grab OS paff directory name and then pasand file.

32
00:02:29,110 --> 00:02:35,710
And then here we're going to get our app call configuration and we're going to configure the sequel

33
00:02:35,740 --> 00:02:40,730
alchemy underscore database underscore.

34
00:02:40,790 --> 00:02:51,020
You are I and I'm going to set that equal to sequel like colon forward slash 4 slash forward slash plus

35
00:02:51,110 --> 00:03:01,010
and then we'll say OS that path dot join and we'll say base directory data sequel like.

36
00:03:01,210 --> 00:03:04,540
So that essentially sets up the actual connection to the database.

37
00:03:04,570 --> 00:03:13,840
And then we're going to say app config and then just as we've done before we'll say sequel alchemy underscore

38
00:03:14,050 --> 00:03:20,160
track underscore modifications and set that equal to false.

39
00:03:20,200 --> 00:03:25,060
Once you've done that we can create our database object saying D-B is equal to sequel.

40
00:03:25,060 --> 00:03:30,250
Alchemy pasand the app and we'll probably want to be able to migrate this as well.

41
00:03:30,250 --> 00:03:39,800
So at the top also say from Flast underscore migrate in poor migrate that allows us to conduct migrations

42
00:03:39,800 --> 00:03:41,960
when we actually set up our databases.

43
00:03:41,960 --> 00:03:48,650
So then after I created the database using secret alchemy I'll just say migrate connecting my application

44
00:03:48,650 --> 00:03:50,420
to the database.

45
00:03:50,450 --> 00:03:52,490
OK so nothing new here really.

46
00:03:52,550 --> 00:03:57,980
We just have our basic database set up right now it's all going underneath this in a pie file because

47
00:03:57,980 --> 00:04:00,540
we want the app that for it to be very clean.

48
00:04:00,560 --> 00:04:03,530
So we'll come back to our models not pie and here.

49
00:04:03,600 --> 00:04:06,220
So we set up our D.B in the init file.

50
00:04:06,230 --> 00:04:07,500
I can do the following.

51
00:04:07,550 --> 00:04:15,090
I can say from puppy company blog import D-B.

52
00:04:15,360 --> 00:04:23,120
And then what I'm going to do is say D-B the model as well as the blog post that's going to inherit

53
00:04:23,120 --> 00:04:25,700
from D-B model.

54
00:04:25,700 --> 00:04:31,060
So again what I'm doing is importing D-B from the in it that py file that we just created here.

55
00:04:31,100 --> 00:04:35,440
So that's why I can say from puppie company blog because I'm using that and it file.

56
00:04:35,720 --> 00:04:41,210
Ok let's begin by setting up our user model later on we're going to need to add in one more thing which

57
00:04:41,210 --> 00:04:46,970
is that user Mixon in order to have authentication but right now we'll begin by setting up the attributes

58
00:04:46,970 --> 00:04:48,780
for the user model.

59
00:04:48,920 --> 00:04:55,640
First I'm going to just set up the table name so I'll say table name underscore underscore and set that

60
00:04:55,640 --> 00:04:58,760
equal to users.

61
00:04:58,960 --> 00:05:06,630
And then I will say Id equal to D-B that column and this is going to be an integer essentially just

62
00:05:06,630 --> 00:05:08,640
a unique identifier for each user.

63
00:05:10,900 --> 00:05:18,450
So since it's a unique identifier we'll say that the primary key attribute here is equal to true.

64
00:05:18,700 --> 00:05:21,450
And then the next one is give yourself a little more room here.

65
00:05:21,530 --> 00:05:25,360
The next we're going to set up is a profile image.

66
00:05:25,440 --> 00:05:27,750
So right now we're going to kind of leave this blank.

67
00:05:28,140 --> 00:05:32,880
But later on you'll see what happens when we actually set up our image Chandler.

68
00:05:32,920 --> 00:05:39,300
For now we'll just say D-B that column and this is going to be D-B string.

69
00:05:39,490 --> 00:05:43,960
And the reason for that is this essentially is going to be a link to a particular image file that the

70
00:05:43,960 --> 00:05:46,310
user later on uploads.

71
00:05:46,310 --> 00:05:50,810
So I'll say nullable equals false.

72
00:05:50,930 --> 00:05:55,580
So essentially you can't get rid of their profile image so will provide a default for them.

73
00:05:55,580 --> 00:05:58,110
So it will say default is equal to.

74
00:05:58,110 --> 00:06:02,590
And here also a default profile dot P and G.

75
00:06:02,750 --> 00:06:08,270
And later on we're going to do is inside of our static folder we're going to put in a PMG file there

76
00:06:08,330 --> 00:06:10,580
as a default profile image.

77
00:06:10,580 --> 00:06:16,760
So moving along we have our ID we have our profile image still some more work we need to do in order

78
00:06:16,760 --> 00:06:17,970
to make that work out.

79
00:06:18,410 --> 00:06:20,990
And then we're going to add in an e-mail.

80
00:06:21,110 --> 00:06:23,210
So it's definitely seen this before.

81
00:06:23,240 --> 00:06:27,350
DB column D-B string up to you.

82
00:06:27,350 --> 00:06:29,410
The limitation on the string you want to put in.

83
00:06:29,720 --> 00:06:31,750
So we can just say 64 here.

84
00:06:31,970 --> 00:06:36,710
And in fact let's make the profile image may be a little larger we'll go and say 64 there too as far

85
00:06:36,710 --> 00:06:39,170
as how long of an image name it can have.

86
00:06:39,320 --> 00:06:41,580
Well say D-B string is 64.

87
00:06:42,410 --> 00:06:47,240
And here will say that unique needs speak to true.

88
00:06:47,240 --> 00:06:52,880
So we can have multiple emails and or a multiple of the same emails I should say and then we'll say

89
00:06:53,990 --> 00:06:59,530
Index true and then we'll say user name is equal to the B column

90
00:07:02,100 --> 00:07:09,570
DB string also set that to some arbitrary limit let's say 64 and this one also needs to be unique.

91
00:07:09,570 --> 00:07:13,240
True and I will say index is true as well.

92
00:07:15,280 --> 00:07:20,990
Now if you're wondering what this index is equal to true means it basically just sets up an index.

93
00:07:21,010 --> 00:07:25,320
And this has to do a little more sequel than it does with flask or sequel alchemy.

94
00:07:25,510 --> 00:07:30,540
But if you're interested in learning more about this you can just come and check out docs on sequel

95
00:07:30,540 --> 00:07:32,420
alchemy and so Dachs that sequel alchemy.

96
00:07:32,470 --> 00:07:36,720
Or check out the constraints and they have a whole discussion on indexes.

97
00:07:36,730 --> 00:07:40,050
Again this has a little more to do a sequel than with actual flask.

98
00:07:40,060 --> 00:07:43,480
So kind of leave it up to you if you're more interested in it but certainly just allows you to make

99
00:07:43,480 --> 00:07:49,870
that column into an index so you can then use sort and it come back to our discussion here on finishing

100
00:07:49,870 --> 00:07:51,600
off this user model.

101
00:07:51,790 --> 00:07:55,090
So you set up the idea let me collapse this left hand side.

102
00:07:55,210 --> 00:08:01,750
We've set up our id our profile image our email our username and all we need to do is set up the password

103
00:08:01,750 --> 00:08:02,730
for the user.

104
00:08:02,740 --> 00:08:06,130
So for this we're going to be using password hashing.

105
00:08:06,130 --> 00:08:12,820
So in order to make sure that all works are going to import all say from and here we're going to use

106
00:08:12,820 --> 00:08:14,050
the works.

107
00:08:14,740 --> 00:08:21,560
If I'm pronouncing that correctly security and here we're going to import the generate password hash

108
00:08:21,650 --> 00:08:26,880
as well as the check password hash functionality so we're going to save that.

109
00:08:27,190 --> 00:08:35,840
And then also now that we're up here say from flask underscore loggin in poor user Mixon.

110
00:08:36,020 --> 00:08:41,390
So this will allow us to have functionality such as is authenticated is active et cetera.

111
00:08:41,510 --> 00:08:43,640
Our actual model inside the templates.

112
00:08:43,640 --> 00:08:46,280
So we want to pass in that mix in here.

113
00:08:47,600 --> 00:08:48,520
And save that.

114
00:08:48,740 --> 00:08:56,860
So this allows the flask logging functionality and then lets set up that password so say password underscore

115
00:08:56,870 --> 00:09:02,380
hash is equal to D-B column.

116
00:09:02,440 --> 00:09:10,200
And this usually hashes to 128 bits will give it 28 string and then finally we're going to want to connect

117
00:09:10,260 --> 00:09:12,920
the blog posts to a user or author.

118
00:09:13,200 --> 00:09:16,260
So I'll say pose is equal to.

119
00:09:16,260 --> 00:09:23,430
And here we're going to set up the relationship will say D-B relationship and we'll say blog post.

120
00:09:23,490 --> 00:09:28,710
The other model here in the same file and we can go ahead and give this a back reference.

121
00:09:28,710 --> 00:09:30,240
So this is a string.

122
00:09:30,270 --> 00:09:34,790
Essentially it's going to look like an attribute call or actually dealing with the templates but it's

123
00:09:34,800 --> 00:09:39,740
what we actually want to call the relationship between a blog post and a user.

124
00:09:39,780 --> 00:09:45,450
So we're going to go ahead and call this author so that the author of the blog post is a user model

125
00:09:46,170 --> 00:09:50,760
so we're going to say that the back reference here is just author and later on we'll see how we can

126
00:09:50,760 --> 00:09:53,450
directly call author into the templates.

127
00:09:54,300 --> 00:09:57,600
And we can make this connection happen easily.

128
00:09:57,990 --> 00:09:59,340
So say true.

129
00:09:59,490 --> 00:10:05,150
Then finally let's create an app method so we can actually make an instance of a user.

130
00:10:05,220 --> 00:10:07,030
So it's actually create an instance of a user.

131
00:10:07,050 --> 00:10:13,080
We're just going to have them at the beginning provide their e-mail their username and password.

132
00:10:13,200 --> 00:10:16,830
So notice in the very beginning they're not going to provide their profile image.

133
00:10:16,830 --> 00:10:19,620
Instead we're going to do is we're going to send it to a default.

134
00:10:19,680 --> 00:10:24,090
And then they can visit their account page and update their profile image like we saw in the very first

135
00:10:24,090 --> 00:10:25,840
lecture of the section.

136
00:10:25,860 --> 00:10:27,760
So there's our method.

137
00:10:27,870 --> 00:10:31,020
Now we're going to set up or attribute assignments we'll say self-doubt.

138
00:10:31,030 --> 00:10:40,830
Email is equal to email self-taught username equal to the username pass then and then self.

139
00:10:40,920 --> 00:10:47,490
And in this case it's the password hash is equal to generate password hash of the provided password

140
00:10:49,700 --> 00:10:53,270
and then we're going to have a method for a user called check password

141
00:10:55,910 --> 00:11:00,740
which is going to take itself and the password provided and we're going to be using this method during

142
00:11:00,740 --> 00:11:05,780
our log interview and essentially the way is going to work is we're just going to return whether or

143
00:11:05,780 --> 00:11:11,530
not the password provided at logged in when hashed matched our currently hashed password.

144
00:11:11,650 --> 00:11:20,760
So say say return check password hash of the user's current password hash versus the provided password.

145
00:11:20,810 --> 00:11:25,400
So we're going again to be using this in our log in to view and we've definitely seen kind of all of

146
00:11:25,400 --> 00:11:26,220
this before.

147
00:11:26,270 --> 00:11:28,240
Now we're really putting it together.

148
00:11:28,490 --> 00:11:34,000
And then finally it's go ahead and have some sort of representation we can print out of a user so we'll

149
00:11:34,000 --> 00:11:37,070
say the string representation pasand self.

150
00:11:37,180 --> 00:11:39,070
We're just going to return that user.

151
00:11:39,080 --> 00:11:51,100
So we'll say return and we'll use extreme formatting here username self thoughts username.

152
00:11:51,110 --> 00:11:51,600
All right.

153
00:11:51,920 --> 00:11:57,950
So the last thing I want to set up as we begin to really finalize this user model is the ability to

154
00:11:57,950 --> 00:11:59,990
have a lock in a manager for this.

155
00:11:59,990 --> 00:12:05,060
Then in order to make sure that we have a logging manager function working correctly we need to actually

156
00:12:05,060 --> 00:12:10,140
set up our logging manager and we need to do this back at our unit thought PI file.

157
00:12:10,430 --> 00:12:19,130
So come back in at that PI file and we're going to do here is safe from flask underscore loggin in poor

158
00:12:19,290 --> 00:12:20,780
log in manager.

159
00:12:21,110 --> 00:12:24,190
And then let's set up our log and configurations.

160
00:12:24,200 --> 00:12:34,270
So after your database setup we're going to do is set up our log in configurations.

161
00:12:34,370 --> 00:12:41,300
So here we just create a log in the manager objects or say logging manager is equal to an instance of

162
00:12:41,300 --> 00:12:45,130
logging manager then we're going to pass in or apt to the logging manager.

163
00:12:45,380 --> 00:12:52,580
So say logging manager in an app pasand the app and then we want to tell users what viewed to go to

164
00:12:52,610 --> 00:12:53,960
when they need to log in.

165
00:12:53,990 --> 00:12:58,630
We haven't actually created this view or even registered as template but we'll go ahead and do it now.

166
00:12:58,850 --> 00:13:06,860
We'll say loggin manager thought loggin view is equal to users loggin.

167
00:13:06,890 --> 00:13:12,710
So later on we're going to register a blueprint for users and that users blueprint going to have a view

168
00:13:12,710 --> 00:13:15,950
called loggin and that's going to be this connection here.

169
00:13:15,950 --> 00:13:21,290
But the reason we created this now is because I actually want to come back to my models that apply an

170
00:13:21,380 --> 00:13:23,540
import that logging manager.

171
00:13:23,540 --> 00:13:32,680
So here what I'm going to say is from Papy company blog import D.B and the logging manager object.

172
00:13:32,720 --> 00:13:34,730
So not imported that logging manager.

173
00:13:34,730 --> 00:13:48,820
So what I can do is say at wups that hash tag atts at log in underscore manager DAW user loader say

174
00:13:48,880 --> 00:14:00,960
the F load user taken the user id and then we're going to return user the query doc get based off the

175
00:14:00,960 --> 00:14:02,390
user id provided.

176
00:14:02,520 --> 00:14:05,010
And again this is the function that really allows us to do that.

177
00:14:05,100 --> 00:14:11,040
If users authenticated sort of stuff in our templates Okay so we technically there really go over anything

178
00:14:11,040 --> 00:14:11,280
new.

179
00:14:11,280 --> 00:14:16,680
The only thing we still need to tackle really is this profile image but the rest of this should feel

180
00:14:16,680 --> 00:14:22,060
very familiar based off of our loggin authorization and authentication lectures.

181
00:14:22,290 --> 00:14:27,530
If this feels fuzzy at all to you I would definitely suggest that you go back and review those lectures.

182
00:14:27,790 --> 00:14:28,410
OK.

183
00:14:28,440 --> 00:14:32,370
So we set up our user which is the more complicated of our two models.

184
00:14:32,370 --> 00:14:38,210
Now let's finish up by completing our blog post model which remember has a relationship to the user

185
00:14:39,470 --> 00:14:40,030
OK.

186
00:14:40,320 --> 00:14:43,650
Let's begin by actually setting up that relationship.

187
00:14:43,650 --> 00:14:50,670
So we're going to have each blog posts be connected to the user by saying users is equal to D-B relationship

188
00:14:51,060 --> 00:14:56,940
and then just pasand the user table and then later on we'll see how we can set up an actual for key

189
00:14:56,940 --> 00:14:58,440
connection.

190
00:14:58,440 --> 00:15:04,170
Now beyond that connection of the relationship we need to set up an individual ID for each blog post.

191
00:15:04,170 --> 00:15:09,850
So we'll say D-B column and then here will say D-B.

192
00:15:09,910 --> 00:15:14,190
And that's just going to be an integer and it's a primary key.

193
00:15:14,190 --> 00:15:20,850
So I'll say true 60 unique identifier and then we're going to do here is set up a user ID and that's

194
00:15:20,850 --> 00:15:24,670
going to be the attribute that actually connects the blog post to the user.

195
00:15:24,690 --> 00:15:32,930
So here we're going to say the following D.B column and that also happens to be an integer.

196
00:15:33,240 --> 00:15:42,240
And then I will say D-B foreign key so we'll call foreign key and then we pass in the string user's

197
00:15:42,620 --> 00:15:43,600
ID.

198
00:15:43,650 --> 00:15:46,860
So where this comes from is the table name users.

199
00:15:46,930 --> 00:15:48,650
So remember we set up that table name here.

200
00:15:48,690 --> 00:15:51,850
Users and then ideas the attributes off of that table.

201
00:15:52,020 --> 00:15:59,410
So say users ID is the actual foreign key for our blog posts user id attribute.

202
00:15:59,490 --> 00:16:05,530
So there are users ID and then we also make this noble is equal to false.

203
00:16:05,530 --> 00:16:09,620
So every blog post must have a user ID associated with it.

204
00:16:09,670 --> 00:16:16,270
After that it's just the basic one so will say date is equal to Debe column and there's actually a special

205
00:16:16,270 --> 00:16:23,700
date time storage for say D-B date time and also set down will equal to false.

206
00:16:23,850 --> 00:16:26,520
So every blog post must have the latest published day.

207
00:16:27,000 --> 00:16:35,980
And then we'll set a default and the default will just be date time UTC now.

208
00:16:36,100 --> 00:16:41,720
So the way that's going to work is we're basically going to say when someone publishes a post it will

209
00:16:41,780 --> 00:16:45,810
automatically default the date that it currently got published that.

210
00:16:45,980 --> 00:16:50,630
So in order to use this date time functionality import pythons builtin date time.

211
00:16:50,690 --> 00:16:59,060
So at the very top we're just going to add in one more or less import will save us from date time import

212
00:16:59,270 --> 00:17:00,280
date time.

213
00:17:00,380 --> 00:17:06,710
And this basically allows Python to automatically grab the date time stamp so that will be the date

214
00:17:07,400 --> 00:17:10,550
of the actual blog post.

215
00:17:10,550 --> 00:17:12,890
So basically just asking when was this last published.

216
00:17:12,890 --> 00:17:14,020
We provide that day.

217
00:17:14,300 --> 00:17:17,380
And then each blog post is going to have a title.

218
00:17:17,480 --> 00:17:20,900
So that's just the normal string column D-B string.

219
00:17:20,930 --> 00:17:25,700
So to you for how long you want to be able to make titles let's just go ahead and say 140 characters.

220
00:17:25,700 --> 00:17:27,680
How long the title can be.

221
00:17:27,680 --> 00:17:29,690
And this will also be knowable false.

222
00:17:29,690 --> 00:17:33,410
So we have to provide a title and then we should also have to provide text right.

223
00:17:33,440 --> 00:17:36,880
So the actual body text of the blog post.

224
00:17:37,130 --> 00:17:47,160
So this will be a column D text and this will be nullable as equal to false OK then we're going to create

225
00:17:47,220 --> 00:17:52,210
our init method so we can actually make an instance of a blog post.

226
00:17:52,440 --> 00:17:58,380
So when someone creates a blog post all they need to do is provide the title the text and the user id

227
00:17:58,440 --> 00:17:59,560
of who's creating it.

228
00:17:59,820 --> 00:18:05,400
Everything else will add in ourselves so will automatically set up the primary key identifier and it

229
00:18:05,400 --> 00:18:09,690
will also automatically default the date.

230
00:18:09,720 --> 00:18:10,830
So then we'll say.

231
00:18:11,020 --> 00:18:21,670
So that title is equal to title self-taught text is is equal to text and then self-taught.

232
00:18:22,950 --> 00:18:26,140
User ID is equal to the user id provided.

233
00:18:26,370 --> 00:18:30,200
And this is essentially all going to be occurring when we actually set up those views.

234
00:18:30,210 --> 00:18:32,810
Finally let's create a way to print this out.

235
00:18:32,880 --> 00:18:35,720
So we'll say the representation of this.

236
00:18:35,880 --> 00:18:40,710
So if I ever want to print out a blog post maybe I'm debugging or something I'm just going to return

237
00:18:40,820 --> 00:18:49,650
a string literal post ID and then passen self-taught ID and you can do other things in here whatever

238
00:18:49,650 --> 00:18:52,620
you really want to pasan for this string representation.

239
00:18:52,620 --> 00:18:55,470
You can also do things like passing the date.

240
00:18:55,470 --> 00:19:02,360
So say self-taught date this or you can also even do the title.

241
00:19:02,940 --> 00:19:04,690
So I add that in as well.

242
00:19:05,130 --> 00:19:09,300
Self-taught title kind of really up to you what you want the print representation.

243
00:19:09,300 --> 00:19:11,170
We actually I don't think we'll be printing this out.

244
00:19:11,460 --> 00:19:13,520
Hopefully not almost when you do some debugging.

245
00:19:13,800 --> 00:19:17,790
OK so let's zoom out speaking at the whole idea of what we just did here.

246
00:19:20,220 --> 00:19:26,310
So what we did is we connected our database in the logging manager in our in a PI file remember we added

247
00:19:26,310 --> 00:19:27,530
in those lines here.

248
00:19:27,540 --> 00:19:32,940
So the database set up the log in configurations and then we created two models here a user model that

249
00:19:32,940 --> 00:19:35,920
has a relationship to the blog post.

250
00:19:35,940 --> 00:19:41,570
So every blog post has this foreign key of the user id and then we also set up the ability for user

251
00:19:41,570 --> 00:19:45,560
names and passwords with the user model as well as a logging manager.

252
00:19:45,860 --> 00:19:46,390
OK.

253
00:19:46,710 --> 00:19:49,090
So if you have any questions on that feel free to check out the notes.

254
00:19:49,110 --> 00:19:53,220
I would highly recommend they do a quick review of the user authentication lectures in case you are

255
00:19:53,220 --> 00:19:56,430
confused on anything regarding the user model.

256
00:19:56,430 --> 00:19:56,980
All right.

257
00:19:57,030 --> 00:20:01,110
Coming up next we're going continue to expand on this and begin to dive in a little more into views

258
00:20:01,200 --> 00:20:02,100
and templates.

259
00:20:02,100 --> 00:20:02,710
We'll see if they're.
