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.