You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

44 lines
2.8 KiB
Plaintext

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

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.