Building Data-Driven Web Apps with Pyramid and SQLAlchemy Transcripts
Chapter: Introducing the Pyramid framework
Lecture: Building block: Configuration
Login or
purchase this course
to watch this video and the rest of the course contents.
0:00
Configuration's a super important part of our web app. Like I described in the intro to this chapter there's certainly behaviors you would like
0:09
to be different in development than in production. A real simple is, do you send email notifications to users when you take certain actions?
0:19
Well, in production, of course you do that, right? I want to reset my password, or I purchased this thing.
0:25
If you're doing testing locally, especially if somebody comes to you and says, hey, the site's not working for me,
0:32
I tried this, but this happens, you might want to log in as that user and then try that action. And obviously you don't want them to get the email.
0:42
The easiest way to do this in Pyramid is to have different configuration files, both for development,
0:47
production, test, whatever the various scenarios you have are. In fact, when you create a new project,
0:53
it comes with a development.ini and a production.ini, and in here we have a bunch of settings that Pyramid uses to control itself.
1:01
But we can add other settings just by saying key equals value, so db_file=/db/webapp.sqlite, API key equals whatever that thing is.
1:13
Notice there's no quotes on the strings, they just come back as strings anyway. Super easy, we can do that. Now how do you get to them in Pyramid?
1:20
Well, we saw that main startup method, and the settings being passed in there, so that's super easy. We go to that again.
1:27
Now we can go to that config and say get us the settings, this is a dictionary that has those keys and values.
1:34
So if I want the DB file, I just say configsettings.get, and there's just standard Python dictionary access.
1:41
Get me the thing for DB file, get me the API key, and off you go. And obviously these can be different in development and production.