Building data-driven web apps with Pyramid and SQLAlchemy Transcripts
Chapter: User input and HTML forms
Lecture: Register POST action

Login or purchase this course to watch this video and the rest of the course contents.
0:00 We have our register form in place
0:02 so let's actually be able to register for the site.
0:06 Well, first of all I click here. Hmmm.
0:09 Doesn't really take us there.
0:10 We actually have the route in place
0:12 we just haven't put it up here
0:13 so let's say account/register.
0:17 Try again. Okay, now we have our register form here.
0:21 We have our name, our email address, and password.
0:23 And we can submit it.
0:25 And if you look at the browser at the top
0:26 it is submitting stuff back to the server
0:29 bunch of empty things. But if we look in here
0:34 this is what we get when we click
0:36 the link in the navigation.
0:38 This is what happens when we submit the form
0:40 'cause one is a GET and one is a POST right?
0:43 Let's just print out the data that we're passing in.
0:45 So, we're going to say request
0:46 and the way we get this is...
0:49 well that's not very helpful is it?
0:52 There's four different places that this data can come from.
0:56 Let's enhance this a bit.
0:58 If you have a smart editor like PyCharm
1:02 we're going to say this is a request
1:03 and make sure you import that from Pyramid.
1:06 Oh, let's try this again.
1:07 Comes from, oh yeah we've got POST
1:10 capital Post. We also have Get
1:15 Also have matchdict
1:16 So let's uh, let's real quick print out
1:20 what's coming in here.
1:23 Alright, remember you have to rerun it
1:24 for the Python bits to take effect.
1:26 If I put my name as Michael, my email address
1:29 is michael@talkpython.fm and the password
1:34 is amazing, it's just going to be the letter a.
1:37 If we go back over here let's see what we got.
1:39 We have this thing called a multidict
1:41 but as far as you're concerned
1:42 you might as well just treat it like a dictionary.
1:43 One thing they do that's pretty slick
1:44 is when you print it out if there's a password or something
1:48 it'll star it out so it's anonymous.
1:50 Even though I told you it still is just the letter a.
1:53 So the name, it's passing though just like that.
1:55 Email's passing through, like that and password.
1:58 And then Get, Get doesn't have anything.
2:01 But if we had something up here like:
2:03 question mark source equals promo, and we do the same thing
2:10 you can see in this case those right there
2:12 now our Get has the source.
2:13 So Get is the query string
2:16 and then the matchdict is actually
2:18 the data coming from the route.
2:20 If we look at the route definition
2:22 there's nothing here, but if we had
2:24 I don't know, something like mode
2:27 or some additional data
2:28 like we are with our package name up here.
2:32 Where were kind of come up here and say this is going to be:
2:35 /newuser, right? That would be the mode.
2:42 Now if we look back you can see the matchdict
2:43 has that mode. These pieces coming through over there.
2:48 Okay, super. So this is the data
2:50 that's being provided to us, now our job is to take
2:53 well, in this case, just the POST data
2:56 and use that to actually create the user
3:00 to register the user.
3:01 So that's going to be our next step.