Profilo di Mobo01

Nome Mobo01
Indirizzo email n/a
Messaggi8
  • Problema Node.js e CORS: risoluzione dei problemi di condivisione delle risorse tra origini
    Forum >> Programmazione Python >> Scripting
    Sto lavorando a un progetto Node.js che funge da API di backend e ho riscontrato un problema CORS (Cross-Origin Resource Sharing). La mia API deve gestire le richieste da un dominio diverso, ma ricevo errori relativi a CORS. Cerco indicazioni su come risolvere questo problema.




    Ecco una versione semplificata del mio codice Node.js che configura un'API Express:




    const express = require('express');
    const app = express();
    const port = 3000;
    
    app.get('/data', (req, res) => {
        const data = { message: 'This is the API response.' };
        res.json(data);
    });
    
    app.listen(port, () => {
        console.log(`Server is running on port ${port}`);
    });
    

    Quando provo a effettuare una richiesta a questa API da un dominio diverso, ricevo un errore CORS nel browser:


    Access to XMLHttpRequest at 'http://localhost:3000/data' from origin 'http://different-domain.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
    


    Fornisci esempi di codice e passaggi per configurare CORS nella mia applicazione Node.js per consentire richieste da un dominio specifico (ad esempio "Scaler").




    Come posso impostare configurazioni CORS più avanzate, ad esempio consentire più origini o gestire metodi HTTP specifici?




    Ci sono considerazioni sulla sicurezza o best practice di cui dovrei essere a conoscenza quando configuro CORS nella mia applicazione Node.js?






    Sto cercando una guida pratica per risolvere questo problema CORS e garantire che la mia API possa accettare richieste da domini diversi mantenendo la sicurezza. Le tue intuizioni sarebbero molto preziose.
  • Decoratori Python: registrazione personalizzata per chiamate di funzioni
    Forum >> Programmazione Python >> Database
    I'm working on a Python project where I have multiple functions and I want to log each function call along with its arguments and return the value for debugging purposes. I've heard that decorators can help achieve this. Could someone guide me on how to create a custom decorator for logging function calls?




    Here's what I have in mind:




    def log_function_call(func):
        def wrapper(*args, **kwargs):
            # Log function call, arguments, and return value
            result = func(*args, **kwargs)
            # Log the result
            return result
        return wrappers
    
    @log_function_call
    def add(a, b):
        return a + b
    
    @log_function_call
    def subtract(a, b):
        return a - b
    
    # Example function calls
    result1 = add(5, 3)
    result2 = subtract(10, 4)
    

    I would like to log function calls and their results in a clean and organized way. How can I modify the log_function_call decorator to achieve this? Also, what is the best procedure to setup the logger in Python to capture these logs effectively? Any code examples or recommendations would be greatly appreciated. Thank you!

  • Errore di comprensione dell'elenco Python: output imprevisto
    Forum >> Principianti
    Riscontro un output imprevisto durante l'utilizzo della comprensione delle liste in Python. Sto cercando di creare un elenco di valori al quadrato per i numeri pari in un determinato intervallo, ma il risultato non è quello previsto. Ecco il codice che sto utilizzando:



    even_numbers = [x for x in range(10) if x % 2 == 0]
    squared_values = [x**2 for x in even_numbers]
    
    print(squared_values)
    


    Mi aspettavo che l'output fosse [0, 4, 16, 36, 64], ma invece ottengo [0, 4, 16]. Sembra che manchino l'ultimo numero pari (8) e il corrispondente valore al quadrato (64).




    Qualcuno può aiutarmi a capire perché questo sta accadendo e come correggere il codice di comprensione dell'elenco per ottenere l'output desiderato? C'è qualcosa che sto trascurando nel mio approccio? Le tue intuizioni sarebbero molto apprezzate. Grazie!


  • Come gestire i valori mancanti in un dataframe Pandas?
    Forum >> Programmazione Python >> Database
    Mi sono imbattuto in un problema con valori mancanti nel mio DataFrame mentre lavoravo a un progetto di data science utilizzando il pacchetto panda di Python. Ho chiesto assistenza allo Scalers Data Science Project, ma il problema non è stato ancora risolto. Numerose colonne compongono il mio dataset e alcune di esse hanno valori mancanti indicati come NaN.






    Ecco uno snippet del mio DataFrame:




    import pandas as pd 
    
    # Sample DataFrame with missing values 
    ​​data = { 
        'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eva'], 
        'Age': [25, 28, None, 32, 22], 
        'Score': [85, None, 78, 92, None], 
        'Salary': [50000, 60000, 55000, None, 48000] 
    } 
    
    df = pd.DataFrame(data)
    



    Voglio gestire efficacemente questi valori mancanti prima di procedere con la mia analisi. Sto prendendo in considerazione alcune opzioni come la rimozione di righe con NaN, l'imputazione di valori mancanti con la media o l'utilizzo dell'interpolazione.

    Qualcuno potrebbe guidarmi sull'approccio migliore per gestire i valori mancanti nel mio DataFrame? Inoltre, apprezzerei molto alcuni esempi di codice per dimostrare l'implementazione del metodo scelto. Grazie in anticipo per il vostro aiuto!


    --- Ultima modifica di Mobo01 in data 2023-07-27 14:00:54 ---
  • La clausola "WITH" in MySQL
    Forum >> Principianti
    Sto tentando di utilizzare MySQL per costruire una vista che includa la clausola "WITH".

    WITH authorRating(aname, rating) AS
    SELECT aname, AVG(quantity)
    FROM book
    GROUP BY aname

    Tuttavia, non sembra che MySQL lo supporti. Questo mi sembra molto normale e sono sicuro che Oracle è d'accordo. È possibile costringere MySQL a utilizzare la clausola "WITH"? Ho sperimentato i motori MyISAM e innoDB. Entrambi sono inefficaci.

    MySQL è in genere rimasto indietro rispetto a database commerciali come Oracle, SQL Server (recentemente) e DB2 in termini di supporto per lo standard SQL, come descritto in questo documento. PostgreSQL è anche generalmente conforme agli standard.
  • Quando si calcola il fattoriale, c'è una restrizione di ricorsione.
    Forum >> Principianti
    Sto tentando di sviluppare un programma Python che calcoli il fattoriale di un numero intero. Ho creato il seguente codice:

    def factorial(n):
        if n == 0:
            return 1
        else:
            return n * factorial(n-1)
    

    Quando eseguo questo codice con un numero significativo di input, ad esempio 100, ottengo un RecursionError. Questo perché il limite di ricorsione di Python è stato superato.


    Ho letto in questa pagina che avrei potuto usare la libreria matematica per superare il problema di raggiungere il limite di ricorsione quando si calcola il fattoriale di grandi numeri in Python. Ma devo capire come metterlo in atto. Qualcuno può aiutare?

    Grazie in anticipo per la vostra assistenza!
  • Re: Data preprocessing
    Forum >> Principianti
    Sì, esistono varie tecniche Python per inserire i dati mancanti in una serie temporale. Le tecniche di interpolazione, che stimano i valori mancanti in base ai valori dei punti dati circostanti, sono una strategia prevalente.




    Ecco come utilizzare la libreria del panda per colmare le lacune in una serie temporale:

    import pandas as pd
    
    # create a sample DataFrame with missing values
    df = pd.DataFrame({
        'date': ['03/07/20xx', '05/07/20xx'],
        'val1': [10, 20],
        'val2': [15, 25]
    })
    df['date'] = pd.to_datetime(df['date'], format='%d/%m/%Y')
    
    # set the date column as the index
    df.set_index('date', inplace=True)
    
    # resample the DataFrame to fill missing dates
    df = df.resample('D').asfreq()
    
    # interpolate the missing values
    df.interpolate(inplace=True)
    
    # reset the index and display the DataFrame
    df = df.reset_index()
    print(df)
    

    Iniziamo creando un semplice frame di dati con due righe e due colonne, quindi convertiamo la colonna della data in un tipo datetime. La colonna della data viene quindi impostata come indice del DataFrame.





    Il frame di dati viene quindi ricampionato utilizzando la funzione resample() con una frequenza di 'D' (giornaliera) per includere le date mancanti. La funzione asfreq() inserisce i valori NaN nelle nuove righe.




    Infine, usiamo la funzione interpolate() per interpolare i dati mancanti e ripristinare l'indice per mostrare il frame di dati finito.




    È importante notare che il metodo di interpolazione che scegli è determinato dalle proprietà dei tuoi dati e dal contesto del tuo studio. La funzione interpolate() supporta una varietà di algoritmi di interpolazione, inclusa l'interpolazione lineare, polinomiale e spline. A seconda delle tue esigenze, puoi anche scegliere di compilare i dati mancanti utilizzando vari approcci, come il riempimento in avanti o all'indietro.
  • Re: Invalid preprocessing directive #Mac
    Forum >> Principianti
    Poiché la funzione millis() non è dichiarata nel codice, viene visualizzato il messaggio di errore "'millis' non è definito". Questa funzione, che viene spesso utilizzata negli schizzi di Arduino per ottenere l'ora corrente in millisecondi, non è accessibile in CircuitPython o MicroPython. (utilizzati sul Raspberry Pi Pico).




    Puoi sostituire il tempo per millis().monotonic() è una funzione CircuitPython che restituisce il numero di secondi dall'ultimo reset di Pico. Per utilizzare time.monotonic() per monitorare l'ora per una pressione prolungata, è necessario modificare il codice come segue:




    Aggiungi il tempo di importazione all'elenco delle istruzioni di importazione nella parte superiore del codice.

    Sostituisci pressTime = millis() con pressTime = time.monotonic().

    Sostituire if(millis() - pressTime > 1000 e non longPress): con if(time.monotonic() - pressTime > 1 e non longPress):

    Dopo aver apportato queste modifiche, prova a verificare nuovamente il codice e verifica se l'errore è stato risolto.