{"id":13501338,"url":"https://github.com/afterit/flaskstarter","last_synced_at":"2025-12-14T13:24:18.351Z","repository":{"id":41900952,"uuid":"376622945","full_name":"afterit/flaskstarter","owner":"afterit","description":"A Flask project start-up script that creates a modular ready project.","archived":false,"fork":false,"pushed_at":"2023-03-17T19:03:44.000Z","size":224,"stargazers_count":12,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-09T01:16:27.934Z","etag":null,"topics":["apps","cli-app","flask","project-management","python","python3","web"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/afterit.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2021-06-13T19:19:18.000Z","updated_at":"2023-03-14T22:07:08.000Z","dependencies_parsed_at":"2023-07-13T17:53:25.067Z","dependency_job_id":null,"html_url":"https://github.com/afterit/flaskstarter","commit_stats":null,"previous_names":["felipebastos/flaskstart"],"tags_count":20,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/afterit%2Fflaskstarter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/afterit%2Fflaskstarter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/afterit%2Fflaskstarter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/afterit%2Fflaskstarter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/afterit","download_url":"https://codeload.github.com/afterit/flaskstarter/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246162092,"owners_count":20733351,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apps","cli-app","flask","project-management","python","python3","web"],"created_at":"2024-07-31T22:01:33.864Z","updated_at":"2025-12-14T13:24:18.344Z","avatar_url":"https://github.com/afterit.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# flaskstarter 0.8\n\n![](https://img.shields.io/pypi/l/flaskstarter) ![](https://img.shields.io/pypi/v/flaskstarter) ![](https://img.shields.io/pypi/wheel/flaskstarter) \n\nA Flask project start-up CLI to create modular ready projects.\n\nFlaskstarter assumes you know about Flask microframework and its mechanics in a begginer level. It can be really helpful if you are still using monolithic aproach, and needs to start using a modular architecture.\n\nIt also assumes you are using Python 3.6+.\n\n\u003e Flaskstarter recommends the use of a python virtual environment for project\n\u003e to work safely and isolated from your systems binnaries. You should create\n\u003e and activate it before the next steps.\n\nTo install flaskstarter use the usual:\n\n`pip install flaskstarter`\n\nTo see its version:\n\n`flaskstarter --version`\n\nTo see its help:\n\n`flaskstarter --help`\n\nTo start a project, create its folder and:\n\n`flaskstarter init main_module_name`\n\nIf you do want to use the same project's root folder as main module name:\n\n`flaskstarter init .`\n\n\u003e It won't create a requirements.txt on its own anymore, so you feel free to choose your tools.\n\nTo see init's help:\n\n`flaskstarter init --help`\n\nNow, after project creation, you can  make full use of manage.py, a script\nwith a CLI that may help you to automate some tasks inside project tree.\n\nBy now you can create a blueprint structure by typing the bellow on project root:\n\n`$ python manage.py plug-blueprint [blueprint_name]`\n\nIf it will work as an API blueprint, that's enough. But maybe it is not and you want to use private templates related only to this blueprint. This is solved by adding a '-t' or '--templates' to the above command.\n\nAfter that, flaskstarter goes onto main module \u003e settings.toml file to register the blueprint on it. There is an EXTENSIONS variable where you can list all the plugins to autoimport if you create any by hand. It uses factory design.\n\nFor secrets settings, as secret_key and database configurations, refer to instance/.secrets.settings.toml\n\nMost of the times you are adding some extensions and middlewares to your app, so\nyou can add an empty skelleton to instanciate and plug to app by typing:\n\n`$ python manage.py plug-extension [name]`\n\nAs with blueprints, flaskstarter registers extensions on main module \u003e settings.toml.\n\nTo run your app you can use the bellow on project root:\n\n`$ python manage.py runserver`\n\nAsk manage.py for runserver help to see its options.\n\nNow it is possible to plug a database and a migration extensions to the project. For a first experience Flaskstarter is running with flask-sqlalchemy and flask-migrate. The templates that generate the kickoff database use sqlite and the simplest thing possible. You will be able to plug a database by running:\n\n`$ python manage.py plug-database`\n\nWhen plug-database is ran, the manage script will create the migrations folder as\nAlembic requires. Once it is created the following commands will be available.\n\nAfter plugging the database you can scaffold a basic authentication setup, which\nadds an ``auth`` extension and a ``User`` model. This can be achieved with:\n\n`$ python manage.py plug-auth`\n\nThe migrations for the new model are left for you to create when desired.\n\nThis will generate a migration script with Example as message:\n\n`$ python manage.py db-migrate Example`\n\nThis upgrades the database:\n\n`$ python manage.py db-upgrade`\n\nIf anything undesirable happens, this will downgrade the database:\n\n`$ python manage.py db-downgrade`\n\nFor other Flask-Migrate commands, you can export FLASK_APP on your shell and use\nflask db (command) as its documentation guides.\n\n## What the project does for you\n\nIt creates project tree, the init and routes files with a helloworld example and a manage.py script to run the project and attach blueprints to it. The project settings are now on main module directory, so they can be persisted to a CVS repository.\n\nA word of warning: when commiting and pushing your project to versioning servers, remember to put instance folder into .gitignore, if not yet. And then remember to place it into deploy destination.\n\n## What the project does not do for you\n\nIt doesn't force you to use poetry or any other tool but flask, toml and dynaconf on the Flask project created.\n\n## Future\n\n- Add automated tests for development enviroment of flaskstarter\n- Work on a better architecture for the generated project\n\n## How can you help on flaskstarter development?\n\nFeel free to clone it and send us pull requests! Remember to comment the decisions you make so they can be better reviewed.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fafterit%2Fflaskstarter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fafterit%2Fflaskstarter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fafterit%2Fflaskstarter/lists"}