Lezione 1: Creazione del progetto¶
In questa prima lezione vedremo com creare un project , instance e package con una sola linea di comando.
Esamineremo com’è strutturato il file di configurazione dell’istanza generata.
Vedremo come avviare il webserver della nostra applicazione. Ed infine avvieremo l’importazione automatica dei dati geografici (regioni, province, comuni).
Creazione del progetto¶
Prima di tutto occorre usare da terminale il comando gnrmkproject
per creare un nuovo progetto, nella locazione definita nel vostro ambiente per i progetti custom. Di default questa coincide con la directory genropy_projects
.
>>> gnrmkproject custom.fatturazione -i myfatturazione -P fatt -A "gnrcore:sys,gnrcore:adm,gnr_it:glbl"
Il nome del progetto è fatturazione.
Con l’opzione -i
possiamo creare direttamente un’istanza del progetto fornendone il nome identificativo, in questo caso myfatturazione.
Con l’opzione -P
possiamo fare creare allo script il package principale del progetto dandone il nome identificativo fatt.
Includiamo inoltre i packages built-in di Genropy sys, adm, glbl.
Il risultato di questo script è la creazione del progetto fatturazione, dell’istanza myfatturazione e del package fatt.
Configurazione istanza¶
Una volta creato il progetto si può esaminare la configurazione di istanza. In Genropy è possibile avere contemporaneamente anche diverse istanze della stessa applicazione, ad esempio una per lo sviluppo e una per la produzione. Tipicamente ogni istanza si collega ad un diverso database.
Nel file instanceconfig.xml
si configurano le caratteristiche dell’istanza:
il nome e l’implementazione del database dell’applicazione
l’elenco dei package usati dall’applicazione
altre eventuali configurazioni.
Ecco come si presenterà il file.
<?xml version="1.0" ?>
<GenRoBag>
<db dbname="myfatturazione"/>
<packages>
<gnrcore_sys pkgcode="gnrcore:sys"/>
<gnrcore_adm pkgcode="gnrcore:adm"/>
<gnr_it_glbl pkgcode="gnr_it:glbl"/>
<fatt pkgcode="fatt"/>
</packages>
<authentication pkg="gnrcore:sys">
<py_auth defaultTags="user" method="authenticate" pkg="adm"/>
</authentication>
</GenRoBag>
Suggerimento
Approfondimento sul database:
Seguendo queste istruzioni l’applicativo myfatturazione avrà un database sqlite, in quanto né il file di configurazione di default .gnr/instance_config/default.xml
, né nel file di configurazione dell’applicazione myfatturazione viene indicato l’attributo implementation
nel tag db
. In mancanza di tale indicazione Genropy considera sqlite come implementazione di default .
Se desiderate che i vostri futuri progetti, di default abbiano altre implementazioni SQL, ad esempio postgresql, dovrete modificare il file .gnr/instance_config/default.xml
aggiungendo tag db
con l’attributo implementation="postgres"
e tutti gli altri attributi necessari alla connessione con il database
host
password
user
port
extensions
Questa configurazione, così come tutte le altre sono poi ridefinibili nel file instanceconfig.xml
presente in ciascuna istanza di applicazione. Qui potete trovare dettagli sulle configurazioni per i database
Allineamento struttura database¶
Una volta creato il progetto è necessario apportare alla struttura del database tutti i cambiamenti necessari. Questo viene fatto dal comando gnrdbsetup
seguito dal nome dell’istanza.
>>> gnrdbsetup myfatturazione
Nel caso di implementazione di database sqlite questa istruzione va a generare i file opportuni al path myfatturazione/data
.
Avvio di gnrdaemon¶
Per funzionare il server genropy ha bisogno di un daemon che gestisca lo store server ottimizzando gli accessi.
Diamo quindi il comando gnrdaemon
per avviarlo su una console che non useremo più e resterà sempre viva in background.
>>> gnrdaemon
Credenziali di accesso¶
Per ogni applicativo che andremo a creare, compreso questo, abbiamo delle credenziali d’accesso di default definite nel file .gnr/instance_config/default.xml
. Queste sono state generate dallo script di inizializzazione di Genropy.
Tuttavia per semplicità possiamo ridefinire le credenziali di accesso alla nostra istanza myfatturazione
, modificando nel seguente modo il file instanceconfig.xml
.
<authentication pkg="gnrcore:sys">
<py_auth defaultTags="user" method="authenticate" pkg="adm"/>
<xml_auth defaultTags="user,xml">
<admin pwd="testpwd" tags="_DEV_,admin,user"/>
</xml_auth>
</authentication>
Avvio server di test¶
Adesso si usa il comando gnrwsgiserve
seguito dal nome dell’istanza per mettere in esecuzione un server di test. Il server di test si riavvia automaticamente ad ogni cambio di codice e quindi per la maggior parte delle modifiche non sarà necessario procedere ad un riavvio manuale.
>>> gnrwsgiserve myfatturazione
A questo punto è possibile collegarsi con il browser all’indirizzo locale indicato ed autenticarsi con le credenziali
utente: admin
password: testpwd
Popoliamo i dati geografici¶
Al fine di poter utilizzare la nostra futura applicazione di fatturazione occorre precaricare le tabelle geografiche relative a comuni, regioni e province italiane.
Usando però il bottone in basso a destra preferenze (nella nostra applicazione), possiamo accedere alle preferenze del package glbl
ed usare il bottone che provvede a popolare queste tabelle geografiche.
Possiamo infine fare qualche query sulle tabelle geografiche che risultano a questo punto popolate, accedendo ad esse dal menu di navigazione.
Allegati: