Whenever you create a new widget, you specify its parent as the first argument to its constructor. But a widget needs to also know how it's supposed to sit in its parent (for example, which side it should be aligned to). To specify this, for all the widgets in a given parent, you typically either call the_widget.pack(...) or the_widget.grid(...).
The "Pack" geometry manager (or, the "Packer") is used when you call pack() on your widgets in a given parent.
Some quick tips:
Regarding the named arguments you can pass to pack(), you may use both "side=..." and "anchor=...". side works first (its default is TOP), then anchor specifies where in that side that the widget gets anchored (default is ?).
Note: you may also pass the anchor=... named argument to a widget's constructor, but in this case, it indicates where its text and/or image will be placed within that widget.