Transitioning from Flask to Spruce

Flask is a Python web framework that provides the tools necessary for building simple web applications quickly. On the other hand, Spruce is a TypeScript-based full-stack framework designed to create scalable web applications with a focus on modern web development practices. This guide will help Flask developers understand how to transition to Spruce.

Key Differences between Flask and Spruce Development

FlaskSpruce
Programming LanguagePythonTypeScript
IDEPyCharm, VS CodeVisual Studio Code
App LifecycleManaged by FlaskNo Equivalent
UI DesignJinja2 TemplatesHeartwood, ViewControllers
Event HandlingRoutes and View FunctionsMercury
Data PersistenceSQLAlchemy, Flask-SQLAlchemyData Stores
Error HandlingTry-Except Blocks, Error HandlersTry-Catch Blocks, SpruceErrors
TestingFlask Testing, PyTestTDD by the 3 laws
User AuthenticationFlask-Login, Flask-SecurityMercury, Authenticator
User PermissionsFlask-Principal, Custom DecoratorsMercury, Authorizor

Programming Language

Flask

Coming soon...

Spruce

import {
 AbstractSkillViewController,
 CardViewController,
 ViewControllerOptions,
 buildSkillViewLayout,
 SkillView
} from '@sprucelabs/heartwood-view-controllers'

export default class RootSkillViewController extends AbstractSkillViewController {
 public static id = 'root'
 protected cardVc: CardViewController

 public constructor(options: ViewControllerOptions) {
  super(options)
  this.cardVc = this.Controller('card', {
   header: {
    title: 'Hello, World!',
   }
  })
 }

 public render(): SkillView {
  return buildSkillViewLayout('grid', {
   cards: [this.cardVc.render()]
  })
 }
}

IDE

Coming soon...

App Lifecycle

Coming soon...

UI Design

Coming soon...

Event Handling

Coming soon...

Data Persistence

Coming soon...

Error Handling

Coming soon...

Testing

Coming soon...

User Authentication

Coming soon...

User Permissions

Coming soon...

Something Missing?

Request Documentation Enhancement

Now What?

Install the Development Theatre
It looks like you are using Internet Explorer. While the basic content is available, this is no longer a supported browser by the manufacturer, and no attention is being given to having IE work well here.