Start here. This is the direct spoken answer to practice first.
Overview
Django routing maps one incoming path to one view and gives code a stable way to build links back.
Django starts with the root URL configuration and tests URL patterns in order until the first pattern matches. Captured values are passed to the selected view, and include() delegates a prefix to another URL configuration. Naming a route lets code call reverse() or use the URL template tag instead of hard-coding a path. Namespaces prevent collisions when different apps use the same route name.