flask_man
Flask module to auto setup and manage the project and its configurations (app code, templates, databases...)
Why should I use flask_man's framework?
flask_man will do most of the work for you ! ALL and KEEPING THE FLEXIBILITY AND SIMPLICITY OF FLASK !!
- Create necessary codes, database, tables, files and folders when you initialize the project, leaving to you only editing the templates and adding some code to "template.py and "routes.py" when needed !
- Add/Delete routes/templates to/from the project's files and code in "template.py and "routes.py"
- Compatible with: SQLite, MySQL, MariaDB, PostgreSQL, Oracle SQL and MS SQL. You can switch between them with a single command any time.
- Create/Delete models for/from the project.
- Built-in functions ( in "utils.py" , "database.py" and "handlings.py") and decorators ( in "wrappers.py" ) to minimize the amount of code you write and maximize the security level of the projects.
- Have customizable configurations at "settings.py" which most of them are loaded from "config.json" ( created on the project's creation ) which is also updated when the configurations are changed, every time the application starts.
- Save files locally, filter them by their mimetypes and extensions, and serve them securily.
- Upload files to firebase.
- Users authentication and management with firebase ( create / update / delete / signup / signin / lookup / reset password ... ).
- Send mail.
- Send SMS ( you need an account here and get you API Key and Secret Key ) .
- High level access control ( visitor , user , admin ) achieved with the decorators.
- Secure the application from SQL-Injection by auto-escape: URL arguments, request's body's parameters and dynamic URIs.
- Supports JWT-Authentication.
- Supports CORS for REST API on specific routes.
- CSRF protection by: session's cookie's samesite='Lax' , checking the referer header and/or CSRF token.
- Supports rate-limit and google's reCAPTCHA v2.
- Clickjacking protection.
- XSS protection.
- CORS's protection by validating the origin of the request.
- Built-in functions to validate user's input against: SSRF and Path Traversal.
- Ready to deploy directly on Heroku or shared Hosting site.
- Create an instant backup for all your project's files.
- Have a nice debug toolbar containing useful information for debugging.
The security in the this project is achieved via sanitizy
Usage:
Usage:flask_man [args...]args:
manager: to launch the web interface and manage the project from there examples: to show commands examples upgrade: to upgrade to the latest version of flask_man package init: to create "config.json" and python files that contains code and setup configurations, and to install required packages db: to choose database type to use ( sqlite or mysql or mariadb or postgresql or mssql or oracle ) add_template: create a template file with that path in the templates folder,add the name to the "config.json" file and add necessary code to "templates.py" delete_template: delete the template file with that path from the templates folder, remove the name from the "config.json" file and delete the code from "templates.py" add_route: add the name to the "config.json" file and add necessary code to "routes.py" delete_route: remove the name from the "config.json" file and delete the code from "routes.py" add_model: add the name to the "config.json" file and add necessary code to "models.py" delete_model: remove the name from the "config.json" file and delete the code from "models.py" firebase_apikey: set the firebase APIKey firebase_bucket: set the firebase storage bucket firebase_configs: copy the firebase storage bucket's configs' file to the local configs file pro: set project to production mode dev: set project to development mode
Manager
To use flask_man's manager run the following commands ( suppose we will call the project "flask_proj" ) :
mkdir flask_proj
cd flask_proj
flask_man manager
http://127.0.0.1:12345/
Running the application
python app.py
python3 app.py
Commands examples:
You can also manage your project from the command line with the following commands ( just examples ) :
** Launching the web interface:Example:
flask_man manager** Upgrading the package:
Example:
flask_man upgrade** Creating a Project:
Example 1 (database: SQLite) :
flask_man init config flask_man db sqlite flask_man init app flask_man init installExample 2 (database: MySQL/MariaDB) :
flask_man init config flask_man db mysql flask_man init app flask_man init installExample 3 (database: PostgreSQL) :
flask_man init config flask_man db postgresql flask_man init app flask_man init installExample 4 (database: MS SQL) :
flask_man init config flask_man db mssql flask_man init app flask_man init installExample 5 (database: Oracle SQL) :
flask_man init config flask_man db oracle flask_man init app flask_man init install** Installing the requirements:
Example:
flask_man init install** Add a template to the project:
Example:
flask_man add_template "admin/login.html"** Remove a template from the project:
Example:
flask_man delete_template "admin/login.html"** Add a model to the project:
Example:
flask_man add_model "user"** Remove a model from the project:
Example:
flask_man delete_model "user"** Add a route to the project:
Example 1:
flask_man add_route "admin/upload"Example 2:
flask_man add_route "/profile/<user_id>"** Remove a route from the project:
Example 1:
flask_man delete_route "admin/upload"Example 2:
flask_man delete_route "/profile/<user_id>"** Set firebase APIKey:
Example :
flask_man firebase_apikey "kjkhgyftrdfghjklkjhgfrdefg"** Set firebase storage bucket:
Example :
flask_man firebase_bucket "myfbbucket.appspot.com"** Copy firebase storage bucket's config file to local config file:
Example 1 (Non-Windows):
flask_man firebase_configs "/home/root/configs.json"Example 2 (Windows):
flask_man firebase_configs "C:\Users\user\Desktop\configs.json"** Change Database type:
Example 1:
flask_man db mysqlExample 2:
flask_man db postgresql** Go production:
Example :
flask_man pro** Go development:
Example :
flask_man dev
Metadata
Release files for flask-man 1.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| flask_man-1.2.0.tar.gz | 53.9 kB | Without provenance | Details |
Release files / flask_man-1.2.0.tar.gz
| Download URL | flask_man-1.2.0.tar.gz |
|---|---|
| Size | 53.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d564b94a81ba15e7a7f361bab887b43626044db5bbfd247973a9406c2d2bb4f3
|
|
BLAKE2b-256 checksum How to use checksums |
9c02ae7bd90339c8681c3059e8907da3d657f8201c614485ebfba822f67f8684
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
|
Security for flask-man 1.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.