Documentation Frappe Framework

Frappe Framework

Débogage

Le terminal montre Redis, le web, Socket.IO et les workers. Côté navigateur, debugger pause si les outils sont ouverts. La console Python est bench console.

2 min de lectureMis à jour le Source : docs.frappe.io

Serveur

bench start écrit le journal de chaque ligne du Procfile. L’exemple démarre redis_cache, redis_socketio, redis_queue, web, socketio, watch, worker_short, schedule, puis worker_long et worker_default. Redis 4.0.11 relève le nombre de fichiers ouverts de 4864 à 10032. Ports de l’exemple : file 11002, cache 13002, socketio Redis 12002. Socket.IO écoute *:9002, puis un ECONNREFUSED vers 0.0.0.0:8002 avant que le web réponde sur http://0.0.0.0:8002/. Le reloader fsevents redémarre, le debugger est actif, PIN 321-355-865. watch lance node rollup/watch.js et reconstruit les CSS et chat.js. Un print Python apparaît dans web: pour une requête, ou dans un worker_ pour une tâche de fond. Les journaux sont détaillés dans Journalisation.

Console et client

bench --site [sitename] console importe frappe, l’initialise et ouvre la base. L’exemple charge la Task TASK00004. La balise publiée autour de l’objet est incomplète. La console système est un autre écran.

Côté navigateur, debugger dans un fichier JS pause si les outils de développement sont ouverts. L’exemple lit le statut de TASK00004 avec frappe.db.get_value, puis console.log. L’objet global frappe sert dans la console du navigateur. Le lien d’API publié est coupé par une balise.

VS Code

Liste : mettre à jour le Procfile, installer VS Code et l’extension Python, mettre à jour launch.json, démarrer. Le rechargement automatique est coupé (rechargement manuel ⌘⇧F5). Le multithread Werkzeug aussi. Le texte écrit « diasbles » et « fetaure ».

Dans le Procfile du bench, commenter web: bench serve --port 8000. Ce processus partira de VS Code. bench start continue pour le reste.

launch.json, version 0.2.0, configuration Bench : type python, request launch, justMyCode false, programme ${workspaceFolder}/frappe/frappe/utils/bench_helper.py, arguments frappe serve --port 8000 --noreload --nothreading, python ${workspaceFolder}/../env/bin/python, cwd ${workspaceFolder}/../sites, env DEV_SERVER égal à 1. Cela suppose que le dossier ouvert est apps. Sinon, adapter dossier, interpréteur et cwd. La note parle de pythonPath, la configuration publiée utilise la clé python.

Puis le panneau Debug, ⌘⇧D, ou ⌘⇧F5. C’est l’équivalent de bench serve --port 8000 --noreload --nothreading lancé depuis sites. --noreload coupe le rechargement Werkzeug, --nothreading les threads. DEV_SERVER=1 est posé par bench start. Socket.IO ne fonctionne pas correctement sans lui. bench serve seul ne le pose pas.

Frappe tourne d’ordinaire avec use_reloader=True et threaded=True. Le débogueur VS Code s’en accommode mal, comme Django et Flask.

Point d’attention

Commenter la ligne web change le comportement de bench start. Sans DEV_SERVER, Socket.IO déraille. Le PIN de l’exemple n’est pas une valeur à recopier : il est celui de cette session.