Passaggio all'ora solare 27 ottobre 2019 03:0002:00 sposta indietro l'orologio di 1 ora (si dorme 1 ora in più)
Sempre più si sente parlare di Python come linguaggio di programmazione, quindi ho deciso di studiarlo rifacendo l'applicazione Todo list in AngularJS e NodeJs.
Questa versione ha il backend lato server realizzato in Python, mentre l'interfaccia lato client è rimasta in AngularJS 1.

Questo è uno screenshot della pagina principale basata sul CSS di Bootstrap 3:
HomeHome

La struttura delle cartelle dell'applicazione è questa:
/
  sql_script         ... lo script t-sql per creare il data base
  static             ... la directory pubbica di nodejs (tutte le chiamate a questa dir sono considerate statiche)
    app              ... l'applicazione SPA AngularJS 1
    css              ... i css dell'applicazione
    fonts            ... i font di boostrap
    images           ... le immagini dell'app
    js               ... le librerie di AngularJS 1
  templates          ... i template html delle pagine python
    index.html
  app.py             ... la pagina iniziale di nodejs/express
  config.json        ... i parametri di configurazione tra cui la connection string
  requirements.txt   ... i pacchetti da installare
  service.py         ... l'implementazione delle api 
  start.bat          ... file bat per windows per far partire il server sulla porta 5000
Per funzionare richiede che sulla macchina sia installato Python oltre ad aver disponibile un Database Micrososft SQL Server

Per una spiegazione della parte client in AngularJS vedi Todo list in AngularJS e NodeJs.

Per quanto riguarda Python abbiamo:
  • templates/index.html il template Html dell'unica pagina lato server (da notare i tag {% raw %} ... {% endraw %} per inserire del codice senza che venga parsato da Python)
  • app.py startup dell'applicazione con definizione del routing delle API (app.run e app.route)
  • services.py l'implementazione delle API (def nome_funzione():)
  • config.json i dati di configurazione tra cui la connection string al database
  • requirements.txt l'elenco dei pacchetti da installare necessari per il funzionamento dell'applicazione (tra cui Flask e pyodbc)
Il codice sorgente può essere scaricato da qui python-angular1-todo.zip oppure su GitHub.

Per funzionare è necessario che sulla macchina sia installato Python e sia disponibile un database Micrososft SQL Server.

Fatto questo è necessario:
  • creare una cartella e scompatare lo zip oppure clonare il repository Git
  • creare il database tramite lo script /sql_scripts/mssql.sql
  • cambiare i parametri di configurazione in config.json
  • installare i pacchetti necessari con pip requirements.txt
  • eseguire l'applicazione con start.bat
  • aprire il browser alla pagina http://localhost:5000
Il file config.json e questo:
{
  "db": {
    "driver": "{SQL Server}",
    "server": "localhost",
    "database": "NodeJsDB",
    "username": "nodejs",
    "password": "....."
  }
}
Su Windows Python può essere invocato con il comando py.exe, su altri sistemi come Linux o macOS, può essere invocato con python (versione 2.x) oppure python3 (versione 3.x).

pip è il gestore di pachetti di Python (come npm lo è per NodeJs).

La stessa versione realizzata in ASP.NET e .NET Core è questa Todo list in AngularJS e .NET MVC.