- Notifications
You must be signed in to change notification settings - Fork4
ELC/cookiecutter-python-fullstack
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
This project allows you to automatically generate all the boilerplate code and files for a Full Stack, modern Python Web App, with different options to choose for backends, frontends, databases and web servers.
The project follows the3-tier Architecture, meaning that each layer is decouple and you can swap front-ends, back-ends and databases seemlessly.
Contributions are wellcome!
- Because connecting Back End and Front End is not trivial sometimes.
- Because Python provides different ways to do things and it is good to try something new.
- To learn how to use different tools to do the same job and evaluate alternatives.
- To learn about the advantages of decouple systems (3-Layered Architecture)
- Becauseall possible configurations were tested usingPytest in different versions of Python so you can be sure it works out of the box.
- No Vendor Lock in, once you use the template, you can modify the result in any way you want, this is just a kick off.
To use this template you need cookiecutter, if you don't know what it is, check the2 minute introduction by CalmCode. Then install it via pip as:
pip install cookiecutterThen, to generate your custom project simply run:
cookiecutter https://github.com/ELC/cookiecutter-python-fullstack.gitYou can run the project directly on your local PC or in a container using Docker
You will needinvoke to run the project, install it by running
pip install invokeThen, simply run the following command inside the project folder
invoke buildAndServeAn alternative approach is to useDocker, you will need the Docker engine running. Go with the terminal to the project folder and run:
docker build --tag <your_tag> .And then:
docker run -p <your_port>:<container_port> <your_tag>This project offers different alternatives for each of the layers.All possible combinations have been tested
The front-end is taken from the 2021 edition of the Front-End Crash Course by Traversy Media
- Vue 3: Vue.js is an open-source model–view–viewmodel front end JavaScript framework for building user interfaces and single-page applications. It was created by Evan You, and is maintained by him and the rest of the active core team members -Full Tutorial on Youtube
- React (with WebHooks): React (also known as React.js or ReactJS) is a free and open-source front-end JavaScript library for building user interfaces or UI components. It is maintained by Facebook and a community of individual developers and companies -Full Tutorial on Youtube
- Angular 11: Angular is a TypeScript-based free and open-source web application framework led by the Angular Team at Google and by a community of individuals and corporations -Full Tutorial on Youtube
- Flask: Flask is a micro web framework, it is classified as a microframework because it does not require particular tools or libraries.
More comming soon...
To avoid extra complexity and setup, all the databases included are embedded, meaning, no server-client is needed. Everything happens inside Python.
- SQL bySQLite: SQLite is a C-language library that implements a small, fast, self-contained, high-reliability, full-featured, SQL database engine. SQLite is the most used database engine in the world
- NoSQL (Document) byTinyDB: TinyDB is a lightweight document oriented database optimized for your happiness. It's written in pure Python and has no external dependencies.
- NoSQL (Key-Value/Cache) byDiskCache: DiskCache is an Apache2 licensed disk and file backed cache library, written in pure-Python, and compatible with Django. There’s no need for a C compiler or running another process.
- NoSQL (Column/OLAP) byDuckDB: DuckDB is an in-process SQL OLAP Database Management System with support for SQL and that can run queries against databases, parquet files and even Pandas Dataframes.
- Object-Based byZODB: The Zope Object Database (ZODB) is an object-oriented database for transparently and persistently storing Python objects. Features include transactions, history/undo, built-in caching, and more.
About
Generate a Full Stack Python Web App - Choose the framework you want Vue, React, Angular - Can be run in a single container or without Docker at all.
Topics
Resources
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Uh oh!
There was an error while loading.Please reload this page.