Flask Project Template

screenshot of Flask Project Template
flask

Flask Project Template

DO NOT FORK, CLICK "Use this template" - A github template to start a Flask Project - this uses github actions to generate your project based on the template.

Overview

The Flask Project Template is a comprehensive template for developing Flask applications. It provides a full feature Flask application with CLI, API, Admin interface, web UI, and modular configuration. The template includes various tools and features such as documentation structure using mkdocs, automatic generation of a change log, code linting, code coverage reports, automatic release to PyPI, and continuous integration using Github Actions. It also provides entry points for executing the program with CLI argument parsing.

Features

  • Full feature Flask application: Includes CLI, API, Admin interface, web UI, and modular configuration.
  • Setup.py file: Provides installation, packaging, and distribution for the project.
  • Makefile: Includes useful commands to install, test, lint, format, and release the project.
  • Documentation structure using mkdocs: Provides a structured documentation framework.
  • Auto generation of change log: Maintains a HISTORY.md file based on commit history for each release.
  • Containerfile: Allows building a container image for the project using buildah or Docker.
  • Testing structure using pytest: Includes a testing framework for the project.
  • Code linting using flake8: Ensures code quality and adherence to coding standards.
  • Code coverage reports using codecov: Generates code coverage reports.
  • Automatic release to PyPI using twine and Github actions: Facilitates automatic deployment to PyPI.
  • Entry points with CLI argument parsing: Provides an easy way to execute the program with CLI arguments.
  • Continuous integration using Github Actions: Includes jobs to lint, test, and release the project on different environments.

Installation

To use this template, follow these steps:

  1. Click on the "Use this template" button.
  2. Give a name to your project, preferably using all lowercase and underscores for repository names.
  3. Wait for the first run of CI to finish, as Github Actions will process the template and commit to your new repository.
  4. If you want codecov reports and automatic releases to PyPI, add your PIPY_API_TOKEN and CODECOV_TOKEN to the repository settings -> secrets (obtain the tokens from the respective websites).
  5. Read the CONTRIBUTING.md file.
  6. Clone your new project and start coding.

Note: Wait until the first CI run on Github Actions before cloning your new project.

Summary

The Flask Project Template is a comprehensive template for developing Flask applications. It provides a full feature Flask application with CLI, API, Admin interface, web UI, and modular configuration. The template also includes various tools and features such as documentation structure using mkdocs, automatic generation of a change log, code linting, code coverage reports, automatic release to PyPI, and continuous integration using Github Actions. With easy installation and a range of features, this template is a valuable resource for Flask developers.

flask
Flask

Flask is a lightweight and popular web framework for Python, known for its simplicity and flexibility. It is widely used to build web applications, providing a minimalistic approach to web development with features like routing, templates, and support for extensions.

fullstack
Fullstack Boilerplates

A fullstack boilerplate provides a starter application that includes both frontend and backend. It should include database, auth, payments, user roles and other backend services to build a fully featured saas or webapps.

template
Templates & Themes

A template or theme refers to a pre-designed layout or structure that provides a basic framework for building a specific type of application or website. It typically includes good design, placeholder content and functional features, allowing developers to customize and fill in the details according to their specific needs.