Watch the Series in Order#

This page is the documentation-order playlist for the full Flask-Commands video course.

Use it when you want to move through the material from the first orientation video to the architecture comparison material without jumping around by topic.

Your watched checkmarks are stored locally in the browser, so progress carries between this page and the topic pages.

Welcome#

What is Flask-Commands Unwatched

What Flask-Commands is built to do, which parts of a Flask app it accelerates, and why the project leans so hard into local-first scaffolding.

If the embed does not load, watch on YouTube: What is Flask-Commands.

What Flask-Commands is not Unwatched

What the tool is intentionally not trying to solve so you can keep your expectations aimed at structure, wiring, and repeatable setup instead of design polish.

If the embed does not load, watch on YouTube: What Flask-Commands is not.

The plain recipe app we are building Unwatched

Why the docs use a plain recipe app as the teaching example and how that example gives us believable nested relationships to work with.

If the embed does not load, watch on YouTube: The plain recipe app we are building.

How to Use This Documentation Unwatched

How the written chapters and video callouts fit together so you can follow the course in order or jump to the command family you need.

If the embed does not load, watch on YouTube: How to Use This Documentation.

Install and First Run#

Install The Prerequisites for Flask-Commands Unwatched

Which local tools Flask-Commands expects, why pipx and npm matter, and how to check that your machine is ready before installing the package.

If the embed does not load, watch on YouTube: Install The Prerequisites for Flask-Commands.

Install Flask-Commands with pipx Unwatched

The recommended install path for keeping the Flask-Commands plugins available globally without mixing the package into a project environment.

If the embed does not load, watch on YouTube: Install Flask-Commands with pipx.

Install Flask-Commands with pip Unwatched

The plain pip installation path, when it is acceptable, and what tradeoffs it has compared to the recommended pipx setup.

If the embed does not load, watch on YouTube: Install Flask-Commands with pip.

Confirm the command with version Unwatched

How to verify that Flask-Commands is installed through Flask's CLI using `flask commands --version`, and how that differs from `flask --version`.

If the embed does not load, watch on YouTube: Confirm the command with version.

Read the CLI at a glance with help Unwatched

See how Flask-Commands appears inside Flask's help output, and how to find specific Flask-Commands help documentation.

If the embed does not load, watch on YouTube: Read the CLI at a glance with help.

Starting a Project#

Create a project with flask new Unwatched

Watch the first project scaffold come together so you can see the shape of the generated app before drilling into each file and folder in later chapters.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

What the default scaffold gives you Unwatched

What the default project structure includes out of the box so you know which files, folders, and moving parts Flask-Commands is creating for you.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

Create a project without a database Unwatched

When the no-database project path is the better fit and what changes when you ask the scaffold to leave the database pieces out.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

Run the new project Unwatched

Watch the new project come to life so you can connect the generated files on disk to the running app in the browser.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

Core Ideas#

Project-root safety Unwatched

Why the generators only run inside a valid Flask-Commands project and how that safeguard helps prevent confusing writes in the wrong directory.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

RESTful actions Unwatched

The RESTful action names the package leans on and why those names matter for predictable routes, controllers, and views.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

Dot notation Unwatched

How dotted input maps cleanly onto folders, route namespaces, and nested app structure as the project grows.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

Naming conventions Unwatched

The naming patterns the generators expect so your controllers, models, routes, and templates line up without extra translation work.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

Input normalization Unwatched

How Flask-Commands cleans up and interprets your input before scaffolding so the commands feel forgiving without becoming mysterious.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

flask make:view#

Intro to flask make:view Unwatched

What `flask make:view` does in broad terms, why it is such a useful page-first starting point, and how the command can grow from a simple template into fuller application structure.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

The Basics of make:view#

Create a simple template with flask make:view Unwatched

Watch the smallest useful make:view example so you can see how fast the page-first workflow gets a template and route onto the screen.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

Understand the mains namespace Unwatched

What the mains namespace is doing for you and when it is perfectly reasonable to keep simple pages there on purpose.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

Wire a page explicitly Unwatched

How to create a page with clearer intent so the route, view file, and structure are obvious from the command you ran.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

Use generator flags with make:view Unwatched

Which flags add route, controller, and model wiring so you can choose the smallest or largest scaffold that fits the job.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

Use mains intentionally Unwatched

When staying in mains keeps the app simple and when that simplicity is a feature instead of a sign that you are doing something wrong.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

A quick peek at nested views Unwatched

Watch the nested-view workflow at a high level so you can see how dot notation grows into folders and clearer page structure.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

When make:view is the right starting point Unwatched

When the page-first workflow is the easiest way to start, especially when you want to see interface structure before deeper controller or model work.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

Model Prompt for make:view#

Normalize input before scaffolding Unwatched

How the command cleans up dotted paths and action names before writing files so your intent survives small formatting differences.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

Understand missing-model prompts Unwatched

Why Flask-Commands asks about models in some view workflows and what that prompt is trying to protect or accelerate.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

Avoid prompts with flags Unwatched

How to steer the generator directly when you already know the route or model behavior you want and do not need interactive help.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

Choose between --route, --model, and -m Unwatched

What each flag is responsible for so you can be more explicit about whether you are wiring routes, generating a model, or both.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

Model Prompts Final Comment Unwatched

The design goal behind the make:view model prompts so the command feels helpful when you need guidance and quiet when you already know the answer.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

Building the First Resource with make:view#

Build recipes.index as the first resource Unwatched

Watch the first real resource come together so you can see routes, controllers, models, and templates start acting like one connected feature.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

Understand what -rcm created Unwatched

How to read the generated output from a combined scaffold command so you know exactly which files were created and why.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

Add recipes.show to the resource Unwatched

Watch the second RESTful page slot into the existing resource so you can feel how the structure starts paying off after the first scaffold.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

Why recipes.show matters Unwatched

Why the show page is such an important step in making a resource feel real instead of just looking like a list on the screen.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

Keep the templates intentionally plain Unwatched

Why the docs keep the early templates visually simple so the real lesson stays on data shape, routing, and structure.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

With Two Commands You Have Something To Show Unwatched

See how recipes.index and recipes.show give you the beginning of a real resource with list and detail pages connected to the generated structure.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

GET vs POST for RESTful Actions with make:view#

Get Actions Render Pages Unwatched

Why RESTful GET actions create templates, which actions belong in that group, and how Flask-Commands maps page-rendering behavior to files.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

Post Actions Change State Unwatched

Why POST-style RESTful actions change application state instead of rendering their own templates, and why redirects are the right generated behavior.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

The Browser Flow Unwatched

See the normal GET, POST, redirect loop that connects form pages, submissions, and follow-up pages in a traditional Flask browser workflow.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

A Real Example With Recipes Create And Recipe Store Unwatched

Walk through recipes.create and recipes.store as a paired example so the difference between showing a form and processing that form becomes concrete.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

No Template For Post Actions Unwatched

Why commands such as recipes.store generate route and controller wiring without creating a template file, and why that is intentional.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

What Get vs Post Means When Using Make View Unwatched

How to predict make:view output by asking whether the action should display a page or process submitted data and redirect.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

Nested Resources with make:view#

Build recipes.comments.index Unwatched

Watch the first nested resource step appear under a parent so you can see how truthful dotted naming turns into working nested structure.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

Add recipes.comments.show Unwatched

How a nested show page fits beside a nested index page and why that symmetry helps the structure stay understandable.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

Go three levels deep with images Unwatched

Watch the nesting go one level further so you can see how the package handles deeper relationships without hiding what is happening.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

Why Nesting Pays Off Unwatched

How a few nested make:view commands create relationship-aware routes, controllers, templates, and endpoint names that stay readable as the app grows.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

flask make:controller#

Intro To Flask Make Controller Unwatched

When it makes sense to start from controller behavior and how make:controller helps scaffold the layer that coordinates routes, templates, and models.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

The Basics of make:controller#

Create a simple controller Unwatched

How to start with the controller layer directly when the behavior feels clearer than the page or model structure at the beginning.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

Add RESTful actions with --crud Unwatched

How the controller generator expands into a full RESTful action set so you can scaffold behavior in one pass instead of method by method.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

Why --crud Feels Like A Big Deal Unwatched

Why the --crud flag is such a useful jump in scaffolding power when you want the full RESTful controller, route, and template shape at once.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

Controllers and Models with make:controller#

Add a model with --model or -m Unwatched

The difference between the explicit long flag and the shorthand model-generation path so the command does exactly what you intend.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

Name the Model Directly Unwatched

How --model lets you choose the exact model name instead of asking Flask-Commands to infer one from the controller name.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

Generate the Model Name Unwatched

How -m asks Flask-Commands to generate a model name from the controller name and when that shorthand is clear enough to use.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

Why Both Options Matter Unwatched

Why explicit model naming and generated model naming both matter once controller names start carrying namespaces, multi-word models, or relationships.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

Generating a RESTful Controller with a Model Unwatched

Watch --crud and -m work together to create a RESTful controller, routes, templates, and a registered model from one controller-first command.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

The Naming Problem Unwatched

The three naming stories Flask-Commands has to separate: one multi-word data structure, a namespace, and a nested resource relationship.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

Single Data Structures that are Multiple Words Unwatched

How to keep names like ShoppingList together as one model-backed resource instead of accidentally turning the words into nested structure.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

When to Namespace Unwatched

When a leading name segment is better understood as an organizing namespace rather than a model or parent resource.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

Multi-Word Namespaces Unwatched

How multi-word namespaces map to route packages, endpoint names, and URLs while staying separate from the model name itself.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

Public Pages and Private Tools Unwatched

How namespaces can separate public resource pages from private tool surfaces that manage the same underlying model.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

Naming Nested Controllers by Relationship Unwatched

How nested controller names describe parent-child relationships and how that relationship appears in generated routes and folders.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

Go nested with make:controller --crud Unwatched

How the controller-first workflow behaves when the resource is nested and how that changes the generated routes, files, and prompts.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

Flat vs Nested with make:controller#

Flat or Nest with the ``-m`` Option Unwatched

What the structure choice means inside the controller-first workflow so you can pick the layout that matches your app instead of accepting a default blindly.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

Choose Flat for One Multi-Word Model Unwatched

How --flat keeps a multi-word controller resource together as one model-backed structure when the words describe a single thing.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

Build Nested Resources One Level at a Time (make:controller) Unwatched

Why building nested controller resources from the top down keeps generated parents, children, routes, and prompts easier to reason about.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

Combine Namespaces with Nested Model Generation Unwatched

How controller namespaces and nested model generation can work together when part of the name organizes the app and part describes data relationships.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

flask make:model#

Intro To Flask Make Model Unwatched

When a model-first workflow is the clearest starting point and how make:model can grow outward into the rest of the application structure.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

The Basics of make:model#

Make a basic model Unwatched

How to generate a model first when the data structure is the clearest starting point for the feature you are building.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

What the model includes Unwatched

What Flask-Commands puts into the generated model file so you know which parts are ready immediately and which parts you still need to shape yourself.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

Edit the model and migrate the database Unwatched

The next practical step after generation so your model changes become real database structure instead of just code on disk.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

Create, Update, and Delete a Recipe Unwatched

How to use the generated model methods in a Flask shell to create, update, and delete recipe records after the database schema is ready.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

RESTful Resource with make:model#

Build a resource with make:model --crud Unwatched

How a model-first command can expand outward into a fuller resource by generating the controller, routes, and templates around the data structure.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

Flat vs Nested with make:model#

Choose Flat or Nested with ``--crud`` Unwatched

How make:model --crud handles a multi-word model name when it could represent either one flat resource or a nested model chain.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

Skipping the Prompt with ``--flat`` or ``--nest`` Unwatched

How to bypass the interactive structure prompt when you already know whether the generated resource should be flat or nested.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

Choosing Flat for One Multi-Word Model Unwatched

How --flat keeps a model name like ShoppingList together and generates the matching controller, routes, templates, and URL shape.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

Choosing Nest for a Parent-Child Resource Unwatched

How --nest turns a name like RecipeIngredient into a child resource under Recipe, including the nested controller, route package, and URL shape.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

Use ``make:controller`` for Namespacing Unwatched

Why namespaces are controller and route organization rather than model structure, and why make:controller is the clearer tool for that job.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.

Build Nested Resources One Level at a Time (make:model) Unwatched

How to grow nested model-first resources from the top down so each registered parent is available before adding the next child.

This video slot is planned for the series. Once a YouTube video is linked, it will expand and play directly on this page.