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.