Structurer le code d'un projet Flask
Afin de faciliter le développement et la maintenance d'une application Flask, une organisation est nécessaire. Je vous montre comment organiser les fichiers d'un projet Flask.
Structure
Ci-dessous la structure de fichiers à créer dans votre projet Flask
|-- app
| |-- static
| | `-- css
| | `-- style.css
| |-- templates
| | |-- base.html
| | |-- create_url.html
| | |-- index.html
| | |-- update_url.html
| | `-- view_url.html
| |-- __init__.py
| |-- models.py
| `-- views.py
|-- config.py
|-- init_db.py
|-- requirements.txt
`-- run.py
Configuration
Dans le fichier config.py
, nous allons renseigner des paramètres du projet
import os
class Config:
SECRET_KEY = '=&zn8lo42ycteu*y_u@os&%xrn@o*4$@x^%g8s^mb%z^q19d-k'
SQLALCHEMY_DATABASE_URI = 'sqlite:///' + os.path.join(BASE_DIR, 'app.db')
SQLALCHEMY_TRACK_MODIFICATIONS = False
# Others Config
BASE_URL = "https://knk.com/"
Dépendances
Dans le fichier requirements.txt, copiez et collez les dépendances du projet
Exécutez les commandes suivantes pour mettre en place un environnement virtuel
# Create a vritual environment
python -m venv env
# Activate the vritual environment
source env/Scripts/activate
# Install dependancies
pip install -r requirements.txt
Vous pouvez vérifiez que les dépendances ont été bien installées avec la commande suivante
Package Version
----------------- -------
click 8.1.4
colorama 0.4.6
Flask 2.2.5
Flask-SQLAlchemy 3.0.5
greenlet 2.0.2
hashids 1.3.1
itsdangerous 2.1.2
Jinja2 3.1.2
MarkupSafe 2.1.3
pip 22.3.1
setuptools 65.5.0
SQLAlchemy 2.0.18
typing_extensions 4.7.1
watchdog 3.0.0
Werkzeug 2.3.6
Configuration
Dans le fichier config.py
, nous allons renseigner des paramètres du projet
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from hashids import Hashids
app = Flask(__name__)
app.config.from_object('config.Config')
db = SQLAlchemy(app)
hashids = Hashids(min_length=4, salt=app.config['SECRET_KEY'])
Dans le fichier run.py
, copiez et collez le code ci-dessous
#!/usr/bin/env python
# coding : utf-8
from app import app
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0', port=5000)
Dans la prochaine section, nous verrons comment ajouter une base de données dans un projet Flask.