[Python] FrozenFW 1.5

Stato
Discussione chiusa ad ulteriori risposte.

fojeaf

Utente Silver
3 Marzo 2008
235
8
0
95
[align=center]FrozenFW[/align]

Versione: 1.5
Autore: Malex <malexprojects at gmail dot com>

Si tratta di un web framework, scritto interamente in Python, che offre un efficacie sistema di templating per le pagine (x)html, un sistema di configurazione molto semplice ma potente, un sistema di wrapping che consente di utilizzare senza alcun problema indifferentemente sqlite e mysql (e presto anche postresql ed XML) senza dover cambiare il proprio source. Consente inoltre di limitare l'accesso ai file mediante un semplice sistema di regex (similmente a quanto è possibile fare mediante il php.ini), inoltre fornisce un ambiente completo ma semplice per lo sviluppo web: le + comuni funzione del php (htmlspecialchars/entities, SQL.addslashes, nl2br) sono state completamente riscritte, sono disponibile le variabile data.GET/POST/COOKIE/SERVER (presto verrà implementato anche un sistema per le sessioni).
Il tutto scritto in perfetto stile OOP.

Piattaforma: qualsiasi che supporti cgi e/o wsgi (testato su apache@Debian e lighttpd@Gentoo)
Dipendenze: La versione 1.5 richiede esclusivamente Python >=3.0 (meglio 3.1)
Viene mantenuta comunque la compatibilità con Python >=2.6 nella versione 0.1 (che avrà comunque degli update, ma ovviamente non sarà allo stesso livello della major).
Inoltre, se volete utilizzare il wrapper del database, vi occorre la libreria sqlobject (facilmente trovabile anche nei repository della vostra distribuzione)

Se volete utilizzare il framework con wsgi, potete semplicemente dare
Codice:
make install
e poi copiarvi il file wsgi/init.py e metterlo dove desiderate, configurando opportunamente il vostro webserver. Potete mettere i vostri script py ovunque vogliate, poi in /etc/frozenrc (o il conf opportunamente collegato via chain) dovrete inserire una linea del tipo:
Codice:
base_dir = "/mia/dir/per/http/"
Quando qualcuno darà http://vostro_dns/miao.py , il framework cercherà il file miao.py nella base_dir e lo eseguirà. All'interno dello script potete richiamare tranquillamente ogni variabile/funzione/classe del framework senza dover importare alcunché.

Se invece volete usare cgi, vi basta dare
Codice:
make cgi
dopodiché, nei vostri script vi basterà importare il modulo per avere tutto a vostra disposizione.

Changelog:
FrozenFW 1.5
Codice:
+ WSGI compatibility
+ Function Annotations
+ Improved Makefile
- Python 2.X support

Licenza: GNU/GPL3

Link: http://github.com/Malex/FrozenFW

FrozenFW 1.5:
tarball
zipball

FrozenFW 0.1:
tarball
zipball

O, se volete divertirvi nel vedere che errori del cavolo faccio, fra dimenticanze, fail typo etc, potete anche clonare il repo o prendervi la branch master ;)

TODO:
1) Coversione template da:
Codice:
@!comando #id#  
@!end comando #id#
a un + carino:
Codice:
[@comando id]
[@end]

2) gestione delle sessioni
3) funzioni per la gestione dei cookie
4) implementare un sistema di plugins
5) funzioni per varie azioni (e.g. sendmail)
 
Malex ha detto:
TODO:
1) Coversione template da:
Codice:
@!comando #id#  
@!end comando #id#
a un + carino:
Codice:
[@comando id]
[@end]

mi sembra di averla già vista una cosa del genere...
ah si è uguale a come lo fa il mio framework

ma non eri te che dicevi che come facevo io faceva cagare e che la tua sintassi era più carina?
 
Secondo me siete scemi entrambi. Una macro OPEN_TPL_BRACKET e lo fai scegliere all'utente, il pazzo che usare.

@Malex: ora lo aggiorno l'index eh, appena diventa troppo scandaloso per non essere fatto : D
 
tilde ha detto:
Secondo me siete scemi entrambi. Una macro OPEN_TPL_BRACKET e lo fai scegliere all'utente, il pazzo che usare.

in effetti non è una brutta idea.

@Bronsa: a parte il fatto che su hai [@comando var id] [@end id], che sincramente l'id è una roba in +, comunque a me piace di + l'altra, ma mettendomi nei panni dell'utilizzatore nn sarebbe piaciuto probabilmente.

Cmq sì, ora vedrò come inserire una macro da utilizzare.
 
Malex ha detto:
tilde ha detto:
Secondo me siete scemi entrambi. Una macro OPEN_TPL_BRACKET e lo fai scegliere all'utente, il pazzo che usare.

in effetti non è una brutta idea.

@Bronsa: a parte il fatto che su hai [@comando var id] [@end id], che sincramente l'id è una roba in +, comunque a me piace di + l'altra, ma mettendomi nei panni dell'utilizzatore nn sarebbe piaciuto probabilmente.

Cmq sì, ora vedrò come inserire una macro da utilizzare.

in realtà così era solo per il loop, e non è più così già da un bel po'
 
Frozen 1.5.1
Codice:
++ Cookie.set
-- alcune cose gay

Non aggiorno ancora il primo post perché non ho testato sufficientemente a fondo queste cose
 
Non conoscendo bene come siano fatti i framework web, non posso dare un giudizio preciso, però sembra interessante!
 
Stato
Discussione chiusa ad ulteriori risposte.