All Projects β†’ italomaia β†’ Flask Empty

italomaia / Flask Empty

An empty project skeleton / boilerplate for flask projects. Powered by CookieCutter.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Flask Empty

Shopyo
🎁 Your Open web framework, designed with big in mind. Flask with Django advantages. Build your management systems, ERP products & mobile backend (coming soon). Small business needs apps included by default. First timers friendly. Email: [email protected] | password: pass
Stars: ✭ 172 (-69.77%)
Mutual labels:  hacktoberfest, flask
Laravel Api Boilerplate
Laravel API Boilerplate | Please consult the Wiki !
Stars: ✭ 300 (-47.28%)
Mutual labels:  hacktoberfest, boilerplate
Gulp Front
Frontend boilerplate and framework based on gulp, pug, stylus and babel
Stars: ✭ 237 (-58.35%)
Mutual labels:  hacktoberfest, boilerplate
Flask simplelogin
Simple Login - Login Extension for Flask - maintainer @cuducos
Stars: ✭ 133 (-76.63%)
Mutual labels:  hacktoberfest, flask
Flasksaas
A great starting point to build your SaaS in Flask & Python, with Stripe subscription billing πŸš€
Stars: ✭ 412 (-27.59%)
Mutual labels:  flask, boilerplate
Tedivms Flask
Flask starter app with celery, bootstrap, and docker environment
Stars: ✭ 142 (-75.04%)
Mutual labels:  hacktoberfest, flask
Flask Api Starter Kit
Start a Flask API in less than 5 minutes
Stars: ✭ 296 (-47.98%)
Mutual labels:  flask, boilerplate
Python Resources 2019
A curated list of Python 3 resources, books, websites, tutorials, code challenges
Stars: ✭ 125 (-78.03%)
Mutual labels:  hacktoberfest, flask
Cookiecutter Flask
A flask template with Bootstrap 4, asset bundling+minification with webpack, starter templates, and registration/authentication. For use with cookiecutter.
Stars: ✭ 3,967 (+597.19%)
Mutual labels:  hacktoberfest, flask
Go Project Blueprint
Blueprint/Boilerplate For Golang Projects
Stars: ✭ 376 (-33.92%)
Mutual labels:  boilerplate, blueprint
Mentorship Backend
Mentorship System is an application that matches women in tech to mentor each other, on career development, through 1:1 relations during a certain period of time. This is the backend of this system.
Stars: ✭ 132 (-76.8%)
Mutual labels:  hacktoberfest, flask
Flask Restplus Boilerplate
A boilerplate for flask restful web service
Stars: ✭ 466 (-18.1%)
Mutual labels:  flask, blueprint
React Next Boilerplate
πŸš€ A basis for reducing the configuration of your projects with nextJS, best development practices and popular libraries in the developer community.
Stars: ✭ 129 (-77.33%)
Mutual labels:  hacktoberfest, boilerplate
Rails api base
API boilerplate project for Ruby On Rails 6
Stars: ✭ 172 (-69.77%)
Mutual labels:  hacktoberfest, boilerplate
Django Init
Project template used at Fueled for scaffolding new Django based projects. πŸ’«
Stars: ✭ 126 (-77.86%)
Mutual labels:  hacktoberfest, boilerplate
Freki
🐺 Malware analysis platform
Stars: ✭ 285 (-49.91%)
Mutual labels:  hacktoberfest, flask
Dynaconf
Configuration Management for Python βš™
Stars: ✭ 2,082 (+265.91%)
Mutual labels:  hacktoberfest, flask
Pyms
Library of utils to create REST Python Microservices
Stars: ✭ 120 (-78.91%)
Mutual labels:  hacktoberfest, flask
Jhipster Kotlin
Kotlin based JHipster
Stars: ✭ 339 (-40.42%)
Mutual labels:  hacktoberfest, blueprint
Wordpress Plugin Boilerplate Powered
Wordpress Plugin Boilerplate but Powered with examples and a generator!
Stars: ✭ 413 (-27.42%)
Mutual labels:  hacktoberfest, boilerplate

Flask Empty

version 0.6.3

Flask-Empty is a simple flask boilerplate for fast prototyping. Just use cookiecutter and create a new project in no time.

# if cookiecutter is not installed
pip3 install cookiecutter

# using cookiecutter // linux/Mac
cookiecutter https://github.com/italomaia/flask-empty

# answer the prompt and you're done!

Getting Started

You're advised to use venv from here on. In your project folder, create and enable it like this:

python3 -m venv venv
. venv/bin/activate  # [.csh|.fish]

# install required packages
pip3 install -r requirements.txt

# loads env variables and runs the project in development mode
make run-dev

Getting Started With Docker

Given you have up-to-date docker installed in your machine, all you need to do is:

# build container image
docker build . -t my-project-name
# run container in development mode
docker run --rm -p 5000:5000 my-project-name

Environment Variables

For flask to run correctly, some environment variables need to be set. The ones needed by your project can be seen in the Dockerfile or Makefile files. For a list of all other optional environment variables, check this link. When using docker, you can easely set them inline before each run. When using docker-compose, set them in the yaml configuration file for each environment.

Important files to be aware of

/extensions.py all extension instances that need initialization should be available here, so Empty can see and initialize them for you. If instantiated somewhere else, just import them here and you should be fine.

/config.py has pre-set configuration classes for you to meddle with. They're are all self explanatory and commented.

/main.py instantiates your project's main class. Override it to quickly add custom extension setups, simple views, context processors, etc. It already has some sensitive defaults for most use cases. See https://github.com/italomaia/empty for the available options.

<project>/<project>.ini is the configuration file used with uwsgi. Use it like this:

uwsgi --ini your_project.ini

commands.py adds few very useful commandline commands (...) to help your development productivity. You can also add your own. Check available commands by running FLASK_ENV=development FLASK_CONFIG_DEFAULT=Dev flask in the terminal.

Heroku

Empty comes with a pre-configured procfile and heroku() wrapper for app_factory. No setup required.

Other topics

Templates

There are some error templates bundled with flask-empty by default. All empty right now. Just fill them up for your project.

Macros

You can use the jinja2 macros available in templates/macros to easily integrate your jinja2 templates with flask extensions like wtforms and common tasks like showing flash messages.

Available macros, formhelpers and flashing are very useful.

Blueprints

You can create blueprints easily with make new-app. The will live, by default at apps folder. Remember to configure your blueprints in config.py so that they can be properly loaded.

Json Friendly

Variables true, false and null are now supported as aliases for True, False and None. This way, valid json can be copy-pasted directly into your code and will be interpreted as valid python. Ex: data = {"x": true, "y": false, "z": null}

Supported Extensions

Flask-SQLAlchemy

While creating your project, Flask-Empty will ask you if you wish to enable SQL support. Confirm if you do so and Flask-SQLAlchemy will be made available. See config.py for its default configuration.

_ps: currently, db-create will only create your models if they are imported somewhere in your application.

By somewhere, try the same module where your Blueprint instance is defined.

Flask-Mongoengine

As mongodb is really cool, supporting it is a must. Just say yes at the prompt when asked and Flask-Mongoengine will be setup for you.

Flask-WTF

Flask-WTF is the "the facto" extension for handling forms with Flask. It is simply great, and Flask-Empty supports it! Just say "yes" during project creation and Flask-WTF support will be on.

Flask-Admin

Just create an admin.py file in your blueprint, define your admin models inside and change LOAD_MODULES_EXTENSIONS to also pre-load admin, like this:

Flask-Marshmallow

Gives you, almost for free, model serialization, deserialization and validation. Also quite handy for fast development of rest applications.

Flask-Security

Get user session and permissioning out-of-the-box with this great project.

Examples

The blog example in this project is probably outdated by now, so, just create a new project and mess around to your heart's content for quick learning.

FAQ

Is flask-empty boilerplate compatible with flask 0.x? Cuz' that's what my app uses.

Right now, flask-empty is a very simple project where many good practices and code examples were glued together.

Until recently I was focused in keeping backward compatibility with flask 0.8. Well, that goal is no more.

Flask-empty will be compatible with the latest version of Flask and, by chance, with previous versions. Things will be easier (for me!) this way.

So, which is the oldest version where flask-empty works?

In my last test, version 1.0.

I think flask-empty should have this and that configured by default. Will you add support?

My current goals are:

  • Make flask-empty real easy to start a project with
  • Keep things simple and robust

If your suggestion is simple, VERY useful and has little overhead, I'll probably consider adding it to the project.

If you make the code and send a pull request, then I'll consider it real hard. Now, if your suggestion is rejected or advised in a different approach, don't get sad (you're awesome ;).

I just made a cool example with flask-empty and want to add it to examples.

Pull request it for evaluation ;) Just keep in mind that good examples are short (not really...) and focused in it's showcase.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].