Quali strumenti per progetto web in python

di il
11 risposte

Quali strumenti per progetto web in python

Ciao a tutti!
 mi sto avvicinando al mondo del pyton e a quello web. Ho sempre programmato applicazioni locali in Visual Basic, VBA… ec…

L'idea sarebbe di realizzare una pagina web che possa far vedere il risultato di una query (e fin qui ci sono riuscito) ma con la variante che il db è una tabella SQL server (e non MySQL) che ho in un pc locale e la pagina web deve essere raggiungibile da qualsiasi posto al mondo… 

Sono giorni che faccio ricerche ma trovo tanto materiale da non capirci più niente…

Ho fatto alcuni test con IIS e tutto funziona, tranne che la connessione al DB. Dalla macchina locale vedo il risultato della query, ma dal web no.

Quali strumenti mi suggerireste di utilizzare?

 Grazie Mille per i suggerimenti…!!

11 Risposte

  • Re: Quali strumenti per progetto web in python

    17/02/2023 - SunnyBear ha scritto:


    Dalla macchina locale vedo il risultato della query, ma dal web no.

    Ovvero? Qual è l'errore che ottieni? Che framework stai utilizzando? Qual è il codice rilevante che hai scritto?
    Qual è il risultato nel caso positivo e cosa succede invece nel caso negativo?

    Per ottenere aiuto, occorre fornire quante più informazioni possibile.

  • Re: Quali strumenti per progetto web in python

    Hai ragione… a volte per amore di riassumere e non essere troppo lunghi si rischia di essere fin troppo sintetici e non far capire nulla…!!  Scusatemi… Provo a dettagliare quello che sto imparando a fare…

    Sto usando Flask come framework e qualche riga di codice in python che fa visualizzare il risultato in una pagina html.

    Nello specifico con Python mi collego ad un database SQL server locale tramite la libreria pyodbc. Eseguo una semplicissima query il cui risultato viene inviato tramite render_template alla pagina index.html. E nella pagina html tramite un semplice ciclo for visualizzo i risultati.

    Fin qui tutto funziona bene… se richiamo la pagina html come localhost visualizzo quello che desidero. Il mio desiderio è quello di visualizzare questa pagina html da qualsiasi pc nel mondo... Così ho provato a configurare IIS che reindirizza alla cartella del progetto. Da una postazione differente adesso vedo la pagina html con l'intestazione, ma quando deve effettuare il ciclo for anzichè vedere i risultati la pagina mi ritorna le istruzioni che ho scritto.  Provo ad allegare codice e risultati così da rendere tutto più chiaro….

    from flask import Flask, render_template
    app = Flask(__name__)
    
    import pyodbc
    
    @app.route('/')
    def index():
    
        connection_string = "DRIVER={ODBC Driver 17 for SQL Server};SERVER=XXX.XXX.XXX.XXX\SQLEXPRESS;DATABASE=DB_PROVA;UID=saaa;PWD=aaaa"  
        cnn = pyodbc.connect(connection_string)
        
    
        query = "SELECT top 10 * FROM [dbo].[CLIENTI]"
        vettore =[]
        
        cursor = cnn.cursor()
        cursor.execute(query)
    
        for row in cursor.fetchall():
            vettore.append({"COGNOME": row[0], "NOME": row[1], "SALDO": row[2]})  
        cursor.close()
        cnn.close()
        return render_template('index.html', valori=vettore)
    	
  • Re: Quali strumenti per progetto web in python

    Scusate ma non riesco ad inserire la pagina html, mi viene bloccata… inserisco solo il ciclo for….(il layout l'ho copiato da bootstrap):

    <div class="accordion m-5" id="accordionExample">
    {% for riga in valori %}
      <div class="accordion-item">
        <h2 class="accordion-header" id="headingOne">
          <button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
            {{riga.COGNOME}}
          </button>
        </h2>
        <div id="collapseOne" class="accordion-collapse collapse show" aria-labelledby="headingOne" data-bs-parent="#accordionExample">
          <div class="accordion-body">
    		Nome Completo: {{riga.NOME}} {{riga.COGNOME}} <br> Saldo: {{riga.SALDO}}
          </div>
        </div>
      </div>
    {% endfor %}
    </div>

    I risultati che ottengo finchè sono nel pc locale sono corretti: Vedo l'intestazione e le righe degli elementi del database.

    Mentre quando punto dall'esterno (o anche nello stesso pc ma stavolta puntando l'ip pubblico) vedo l'intestazione correttamente, mentre nel body vedo proprio le istruzioni html

     NomeSito_
    {% for post in posts %}
    {{post.COGNOME}}
    Nome Completo: {{post.NOME}} {{post.COGNOME}}
    Saldo: {{post.SALDO}}
    {% endfor %}

    Volevo postare le immagini ma non sono riuscito…scusate…


    Capisco che sbaglio il modo di puntare al db ma non ho idea di quali strumenti, librerie o codice utilizzare…

    Grazie mille per i vostri preziosi suggerimenti!

  • Re: Quali strumenti per progetto web in python

    Ecco questo è il risultato che ottengo puntando dall'esterno

  • Re: Quali strumenti per progetto web in python

    Questo invece è il risultato corretto che ottengo in locale…

  • Re: Quali strumenti per progetto web in python

    18/02/2023 - SunnyBear ha scritto:


    Così ho provato a configurare IIS che reindirizza alla cartella del progetto

    Se configuri IIS per reindirizzare alla cartella del progetto, ciò che vedrai tramite questo Web server da fuori sono i file presenti in quella cartella, che è esattamente l'effetto che ottieni.

    Se lanci la tua applicazione Flask sulla porta 5000, ti basta navigare con l'indirizzo IP verso la tua macchina su quella porta per vedere l'applicazione.

    Qualunque server che risponda sulla macchina a quella porta deve interagire con Python affinché il tuo programma funzioni, altrimenti vedrai i file così come sono.

  • Re: Quali strumenti per progetto web in python

    Grazie Alka, così adesso è tutto più chiaro! Ho fatto una macedonia di servizi e server … !! Il problema è che essendo all'interno di una VPS di aruba temo che la porta 5000 non sarà raggiungibile dall'esterno….

  • Re: Quali strumenti per progetto web in python

    20/02/2023 - SunnyBear ha scritto:


    Il problema è che essendo all'interno di una VPS di aruba temo che la porta 5000 non sarà raggiungibile dall'esterno….

    La porta puoi modificarla a piacimento: vedi il sorgente del programma Python.

  • Re: Quali strumenti per progetto web in python

    Molto interessante… Ti chiedo perdono… ma sono proprio ignorantissimo sull'argomento… sto iniziando adesso… Dove dovrei guardare per effettuare questa modifica? Suppongo dovrei intervenire su Flask che richiamo all'inizio , ma non capisco da dove…. 

  • Re: Quali strumenti per progetto web in python

    20/02/2023 - SunnyBear ha scritto:


    Molto interessante… Ti chiedo perdono… ma sono proprio ignorantissimo sull'argomento… sto iniziando adesso… Dove dovrei guardare per effettuare questa modifica? Suppongo dovrei intervenire su Flask che richiamo all'inizio , ma non capisco da dove…. 

    Prova a dare un'occhiata a questo articolo.

    Detto questo, come discorso generale, se ti fermi a queste problematiche iniziali, allora devi probabilmente fare un passo indietro e documentarti meglio sul funzionamento del framework e sul tipo di applicazioni che stai realizzando, prima di procedere con cose più avanzate.

  • Re: Quali strumenti per progetto web in python

    Intanto un grazie di cuore per il link all'articolo. Si, sono pienamente d'accordo sul fare anche più di un passo indietro… Al momento sto solo testando in modo molto superficiale se l'idea che ho in testa è realizzabile con Python e Flesk su una VPS. Assodato questo comincerò la fase di studio approfondito senza il quale potrei andare avanti. Grazie Ancora Alka !!

Devi accedere o registrarti per scrivere nel forum
11 risposte