Crafter
A CLI tool for rapidly building applications with FlaskMVC Starter Kit
Getting Started
- Create a project using FlaskMVC Starter Kit and install the dependencies (this installs Crafter as well)
Usage
- the format of running commands with crafter is as follows:
crafter <command> <args>
Commands
model
Create a model with a name of post
crafter model --name post
- generates
post.py in app/models
controller
Create a controller with a name of post
crafter controller --name post
- generates
post_controller.py in app/controllers
- generates a model if no model with given name is found
route
Create a route with a name of post
crafter route --name post
- generates
post_route.py in app/routes
- generates a controller if no controller with given name is found
- generates a model if no model with given name is found
relationship
Create a relationship between two models
- type: [
one_one, one_many, many_one, many_many]
- models:
model_1, model_2
crafter relationship --type one_one --models student contact
- generates either models if no model with given names are found
- creates a one-to-one relationship between
student and contact
crafter relationship --type one_many --models knight sword
- creates a one-to-many relationship between
knight and sword (one knight has many swords)
- if we swap the positions (
--models sword knight) the relationship would be one sword has many knights, which may or may not be intended
many_one works the same way as one_many, just take note of the positions of the arguments
To create a many-to-many relationship, an additional argument is needed, the association
crafter relationship --type many_many --models wizard spell
Enter the association table between wizard and spell: spellbook
- A bridging table named
spellbook is created
- if no input is given, default table name is
{model_1}_{model_2} (in this case, wizard_spell)