ScNat
Code Execution

Au niveau de l’exécution du code, il y a pour le moment 2 instants dans cette application embryonnaire:

Pour explorer la capacité à générer du SVG et animer une glissade j’ai dû placer le calcul des mes deux trajectoires bidons dans un fichier d’initialisation startup.py, dans la fonction run(). Cette fonction:

Tout ceci est fait avant même que la page d’affichage ne soit appelée car startup.run() est exécuté au lancement de l’appli lors d’un appel écrit dans wsgi.py qui est exécuté par Django au tout début:

#dans wsgi.py

import dj9.startup as startup 
startup.run()

Lors de l’appel de la page https://dj9-lutzray1.c9.io/course la fonction views.index() tel que définie dans views.py est appelée, car cette action est spécifiée dans le fichier gcourse/urls.py dans la ligne

url(r'$', views.index, name='index')

je ne comprends pas bien encore le fonctionnement de la chaine r'$' 8-) Il faut lire ici pour une explication des arguments de url().

Et finalement la fct views.index() ne fait que servir le SVG déjà calculé et stocké dans stratup.iost:

#dans gcourse/views.py

def index(request):
    iostring = startup.iost #variable globale, beuark
    svg = iostring.getvalue()
    return HttpResponse(svg)

  1. Note: ce n’est pas une bonne pratique de définir ainsi des variables globales pour partager des données entre des fonctions appelées ultérieurement… vaut mieux passer l’info en argument!.