Posso creare un'applicazione GUI Python desktop ed eseguirla come app Web?

1

Sto lavorando a un progetto in cui più utenti (diversi centinaia forse) dovranno eseguire un'applicazione in remoto. Pensavamo che l'esecuzione di un'app Web sarebbe stata la migliore soluzione da seguire. (Nota: quando dico app web intendo un programma in cui un utente può digitare un URL che consentirà all'utente di eseguire l'applicazione a cui stiamo lavorando in remoto senza installazioni o installazioni limitate al browser che sta utilizzando)

Il mio problema non è sapere da dove iniziare a creare un'app Web. Il modo in cui lo vedo (e correggo se sbaglio), ci sono due tipi di app web là fuori. Un'applicazione Internet ricca che:

has many of the characteristics of desktop application software, typically delivered either by way of a site-specific browser, via a browser plug-in, independent sandboxes, extensive use of Javascript, or virtual machines.

wiki

o un'app Web "normale" simile a gmail. Ho molta familiarità con Python e lo sviluppo di GUI desktop usando wxPython. È possibile scrivere un programma in Python e poi eseguirlo come webapp?

Se sì, come?

    
posta KronoS 20.09.2011 - 19:29
fonte

5 risposte

6

... there are two types of web apps out there. A Rich Internet Application and a regular Web App similar to Gmail ...

Scusa ma è sbagliato ! Le applicazioni Web e Rich Internet Application sono la stessa cosa.

Semplifica ...

  • Un sito web è un insieme di pagine (statiche o dinamiche) ed è abbastanza semplice da costruire e mantenere.
  • Una manifestazione più complessa e ricca di funzionalità dello stesso sito web che include tecnologie / paradigmi / pratiche che evoluti negli ultimi 5 anni è ciò che chiamano un'applicazione Web.

    • Tecnologie: JavaScript, REST, Social Web, API, standard migliorati, NoSQL, Clouds, ecc.
    • Paradigmi: Ajax, reattività percepita, UX, mashups, ecc.
    • Pratiche: accessibilità, più dispositivi, ecc.

Quindi, Gmail NON è la cosa normale, è una delle applicazioni Web di maggior successo (o RIA se lo desideri).

Successivamente, per rispondere alla domanda originale ...

Creare un'applicazione Desktop-cum-Web è un'attività non banale. Certo che può essere fatto. Guarda gTalk - è sia Desktop che Web App.

Devi identificare i componenti comuni e disparati del tuo sistema e poi architettarlo di conseguenza. Potrebbe anche essere necessario un setup MVC complesso. Dovrai anche pianificare attentamente la tua strategia di implementazione e manutenzione. Ancora più importante è necessario un meccanismo di aggiornamento funziona sia per le versioni desktop che per quelle Web della tua app.

Non sto cercando di spaventarti, ma renditi conto che quello che vuoi NON è semplice.

Ora, se non hai idea di dove iniziare per la parte Web App, allora (a mio modesto parere), dovresti prima padroneggiare la programmazione dell'applicazione Web Python e poi avvicinarti a questa cosa. Come già fai con le app GUI, non passerà molto tempo prima di iniziare a sentirti sicuro di questo sistema e avrai tutte le conoscenze e il contesto per rispondere da solo a questa domanda.

    
risposta data 20.09.2011 - 21:08
fonte
2

L'unico caso in cui so come scrivere qualcosa come se si stesse scrivendo un'app desktop e averlo anche in grado di eseguire come un desktop o web app è quando si usa Pigiama . Dal loro sito web:

"Pyjamas is a Rich Internet Application (RIA) Development Platform for both Web and Desktop...It contains a Python-to-Javascript compiler, an AJAX framework and a Widget Set API."

Tuttavia, non so quanto sia ancora lungo e utilizzabile il progetto. In ogni caso è un'ottima idea.

Ci sono alcuni casi in cui le persone hanno creato un'app desktop che deve essere utilizzata attraverso il web. Uno è Dabo Springboard . L'idea è che i tuoi utenti installino il "client" una sola volta, quindi tutte le interazioni, gli aggiornamenti, la gestione dei dati, ecc., Vengano eseguiti tramite Internet. In questo modo ottieni i vantaggi di un'app Web con i vantaggi della GUI di un'app desktop. Inoltre, per i tuoi scopi, Dabo è un wrapper per wxPython.

    
risposta data 20.09.2011 - 20:21
fonte
0

Inizia a imparare Django , un framework web che è basato su Python. Richiede comunque l'esecuzione di un server web, ma potresti essere in grado di riutilizzare parte del codice. Probabilmente non sarà in grado di riutilizzare qualsiasi codice di GUI wxPython esistente, che dovrà essere tradotto in HTML / CSS.

    
risposta data 20.09.2011 - 19:39
fonte
0

Se stai lavorando con Python e devi fare qualcosa sul web, allora Django Framework è la prima cosa che devi sapere. Ti farà accelerare nel processo di sviluppo di un'applicazione Internet.

Da lì in poi, crei su qualsiasi servizio web che desideri avere sul tuo server. Per quanto riguarda l'interfaccia utente, lavorerai con HTML. Javascripts, flash, AJAX sono complementari per il raggiungimento di un'API interattiva e reattiva.

Puoi visitare Django Tutorial per iniziare e vedere come funzionano le cose sul web usando Python e HTML.

    
risposta data 20.09.2011 - 20:06
fonte
0

Se sei disposto a sviluppare applicazioni web come se stessi sviluppando applicazioni desktop, ti consiglio:

  • per il mondo Java: Vaadin
  • per il mondo Python: muntjac (che in realtà è Vaadin, ma convertito in Python)

Ho uno script di shell che installa muntjac e crea uno scheletro per una semplice applicazione web in un colpo solo. Segui semplicemente questi passaggi:

  1. crea una cartella separata

    $ mkdir ciao

  2. scarica install_muntjac.sh ed eseguilo nella cartella che hai appena creato

    $ cd Ciao $ /path/to/shell/script/install_muntjac.sh

    note : quando si esegue lo script della shell, vengono decompressi due file .zip e alcuni file verranno sovrascritti. Va bene, non preoccuparti. Rispondi semplicemente A , che significa (A) ll quando ti chiede di sovrascrivere i file.

  3. esegui l'applicazione web

    $ python portal.py
    Servire su 0.0.0.0:8080

  4. apri l'applicazione web nel tuo browser
    server: localhost, porta: 8080, contesto: / portal

risposta data 01.10.2013 - 14:39
fonte

Leggi altre domande sui tag