Refer below link to start with the Flask.
Note - Please feel free to contribute and add more insightful Flask related blogs and study materials links.
- Template basics, variables, control flow
- Templates inheritance, url_for function
- Templates forms
- Assignment
- Introduction to SQLAlchemy ORM, Model Creation, Flask Migrate
- Setting up the database
- Demonstration of CRUD operations
- Creating model for demonstrating One to One and One to Many relationship
- Performing CRUD operation on tables created based on above models
- For larger Flask applications, it makes more sense to separate portions of the application into their own files (models.py, forms.py, views.py)
- Forms, Views, Templates for each major component.
- We’ll be able to use the blueprints library to connect these separate modular components to our main app.py file.
- Flask has a built-in blueprints capability which will allow us to register modular components for our Flask App.
- This way we can easily reference a view for each component.
- Keep in mind, we’re still keeping app.py, it will just be referencing these sub-components.
- Below is the sample flask directory structure.
- For example, we’ll have 2 views.py files, one for 'owners' and one for 'puppies'.
- Each of these views.py will have their own add view.
- In order for our Flask application to not get confused for a /add route, we use blueprints
- The blueprints will register a url_prefix for each views.py file.
- /owners/add
- /puppies/add
Fig 1: Flask Project Structure
./testproject
├── app.py
├── requirements.txt
└── testproject
├── __init__.py
├── app1
│ ├── forms.py
│ ├── templates
│ │ └── app1
│ └── views.py
├── app2
│ ├── forms.py
│ ├── templates
│ │ └── app2
│ └── views.py
├── models.py
├── static
└── templates
├── base.html
└── home.html
This script will create the flask project with all the apps/components information.
usage: startproject.py [-h] [-p TARGETPATH] projectname
Create a new Flask project.
positional arguments:
projectname The name of the project to create.
optional arguments:
-h, --help show this help message and exit
-p TARGETPATH, --targetpath TARGETPATH
Path to the directory where the project will be created.
Use case 1: By running this script like below, 'testproject' dir will be created which have structure as shown in Fig 1.
user@laptop % pwd
/home
user@laptop % python startproject.py testproject
user@laptop % ls
testproject
Use case 2: By running this script like below, sub project dir name (where all flask apps/component will live) will be same as pwd directory name.
user@laptop % pwd
/home/testproject
user@laptop % python startproject.py .
user@laptop % ls
app.py requirements.txt testproject
Use case 3: By running this script like below, flask project will be created at the given target path.
user@laptop % pwd
/home
user@laptop % python startproject.py testproject -p /opt/temp
user@laptop % ls /opt/temp
testproject
Note - Please contribute for features and enhancements.
- Python and Flask Bootcamp: Create Websites using Flask! - Udemy
- Handling Forms in Flask with Flask-WTF
- Implement OAuth2.0 Login for Flask app
- What is enctype="multipart/form-data" mean?