00:00 One of the very first things if not the first thing 00:03 that we need to do is register our connections. 00:05 So it's really straightforward, we just import MongoEngine 00:08 and then we call register connection, 00:11 and you want to give this connection an alias or set it as the default, 00:14 and then we're going to set the name equal to the name of the database. 00:18 Here we're calling this one core, I like to be very explicit and say 00:22 everywhere that you are working with a connection or a database really 00:26 you name that explicitly in your code 00:29 as we'll see later when we get to the classes. 00:31 So we register connection, and we set the alias to core, 00:35 and the db we're going to say name = dealership. 00:38 Now, this worked well if you're just connecting on local host 00:41 no authentication, default port all that, right 00:44 we just let everything else fall through the cracks. 00:46 When we get to the production deployment, 00:49 well that's not really going to fly anymore, we're going to need ssl, 00:52 we're going to need to enable authentication 00:54 and pass credentials and all that kind of stuff, 00:56 so we can use a more complicated variation here, 01:00 where we do basically the same thing, but we create this dictionary 01:03 that has the additional elements, now it doesn't have to be a separate dictionary 01:07 you could just set them explicitly, but it turns out that sometimes 01:10 if you want to like put this into your log or things like this, it's kind of handy, 01:14 so we're going to basically set a username, password, host, port, 01:17 authentication source is almost always admin, not always, 01:21 it's either the database you're working with if it's a local user 01:24 or if it's a server wide user you're using to be on admin 01:27 authentication mechanism is scram-shah-1, 01:30 or you can change it that's the default and ssl is true, 01:33 and in this case, we might be using a self signed certificate 01:37 which is totally good for the encryption, but it's going to fail 01:40 and say we don't trust the certificate, if we trust the server 01:43 you can go with ssl cert requires none, 01:47 or if you want to make sure you have one, trust its certificate, omit the last line. 01:50 And then we just use **data basically to pass those 01:53 as keyword arguments to register connection 01:56 and notice, each step I'm saying get the user from config or environment 02:00 so this could be in a web app where these values are stored in the config file, 02:04 you don't want to put them in source specifically 02:07 you don't want them checked in anywhere ever, 02:09 you could say get them from, you can put them in environment variables 02:12 on your server and then grab them at runtime 02:14 out of the environment and set them here.