Guida Rapida a PythonAnywhere

Published on

in

Cos’è PythonAnywhere?

PythonAnywhere è una piattaforma di hosting che permette di sviluppare, eseguire e distribuire applicazioni Python direttamente dal browser senza necessità di configurare server. È particolarmente utile per principianti e per chi vuole mettere online rapidamente progetti Python.

Funzionalità Principali

  • Hosting di Applicazioni Web Python: Flask, Django e altri framework
  • Console Python nel Browser: Scrivi e testa codice direttamente online
  • Database Preconfigurati: MySQL e PostgreSQL già pronti all’uso
  • Scheduler di Attività: Automatizza script con il task scheduler integrato
  • Console Bash: Terminale Linux accessibile dal browser
  • Ambienti Virtuali Python: Isolamento delle dipendenze

Piano Gratuito

PythonAnywhere offre un piano gratuito con:

  • Un dominio del tipo tuousername.pythonanywhere.com
  • CPU e RAM limitata (ma sufficiente per piccoli progetti)
  • Accesso a MySQL (limitato a 100MB)
  • Versioni Python preinstallate (2.7, 3.8, 3.9, 3.10)
  • Possibilità di utilizzo di API esterne (con alcune limitazioni)

Creazione di un Sito Web Python in 5 Passaggi

1. Registrazione e Setup Iniziale

  • Registrati su PythonAnywhere
  • Crea un nuovo ambiente virtuale: mkvirtualenv mio_ambiente --python=python3.10workon mio_ambiente

2. Installa le Dipendenze

pip install flask requests python-dotenv

Per interagire con database:

pip install mysql-connector-python

3. Crea l’Applicazione Flask

Crea un file app.py:

from flask import Flask, render_template
import os

app = Flask(__name__)

@app.route('/')
def home():
    return render_template('index.html', message="Il mio sito è online!")

if __name__ == "__main__":
    app.run()

Crea una cartella templates e un file index.html:

<!DOCTYPE html>
<html>
<head>
    <title>Il Mio Sito Python</title>
</head>
<body>
    <h1>Benvenuto sul mio sito!</h1>
    <p>{{ message }}</p>
</body>
</html>

4. Configura l’Applicazione Web

  • Vai alla sezione “Web” di PythonAnywhere
  • Clicca su “Add a new web app”
  • Scegli “Manual configuration” e la versione Python desiderata
  • Specifica il percorso del tuo ambiente virtuale
  • Configura il file WSGI per puntare alla tua app Flask

File WSGI di esempio:

import sys
path = '/home/tuousername/mioapp'
if path not in sys.path:
    sys.path.append(path)

from app import app as application

5. Ricarica l’Applicazione

  • Clicca sul pulsante “Reload” nella sezione Web
  • Visita tuousername.pythonanywhere.com per vedere il tuo sito!

Integrazione con API Esterne (es. OpenAI)

PythonAnywhere permette di fare richieste HTTPS a siti esterni, anche nel piano gratuito, ma con alcune limitazioni.

Esempio di Integrazione con OpenAI

import os
import requests
from dotenv import load_dotenv
from flask import Flask, render_template

app = Flask(__name__)
load_dotenv()  # Carica variabili d'ambiente dal file .env

API_KEY = os.environ.get("OPENAI_API_KEY")

def get_ai_response(prompt):
    url = "https://api.openai.com/v1/chat/completions"
    
    headers = {
        "Authorization": f"Bearer {API_KEY}",
        "Content-Type": "application/json"
    }
    
    data = {
        "model": "gpt-4o-mini",
        "messages": [
            {"role": "system", "content": "Sei un assistente utile."},
            {"role": "user", "content": prompt}
        ]
    }
    
    response = requests.post(url, headers=headers, json=data)
    
    if response.status_code == 200:
        return response.json()['choices'][0]['message']['content']
    else:
        return f"Errore: {response.status_code} - {response.text}"

@app.route('/')
def home():
    ai_message = get_ai_response("Scrivi un breve saluto per i visitatori del mio sito.")
    return render_template('index.html', message=ai_message)

Gestione delle Variabili d’Ambiente

È fondamentale non inserire API key direttamente nel codice. PythonAnywhere offre due modi principali:

1. Tramite l’Interfaccia Web (Consigliato)

  • Vai alla sezione “Web”
  • Scorri fino a “Environment variables”
  • Aggiungi coppie chiave-valore (es. OPENAI_API_KEY e la tua chiave)
  • Ricarica l’applicazione

2. Tramite File .env (Per Sviluppo)

Crea un file .env nella cartella del progetto:

OPENAI_API_KEY=la_tua_chiave_api

Nel tuo codice Python:

from dotenv import load_dotenv
import os

load_dotenv()
api_key = os.environ.get("OPENAI_API_KEY")

Connessione al Database MySQL

PythonAnywhere offre MySQL preconfigurato:

import mysql.connector

def connect_to_db():
    conn = mysql.connector.connect(
        host='tuousername.mysql.pythonanywhere-services.com',
        user='tuousername',
        password='tuapassword',  # Usa variabili d'ambiente!
        database='tuousername$default'
    )
    return conn

# Uso:
conn = connect_to_db()
cursor = conn.cursor()
cursor.execute("SELECT * FROM tabella")
data = cursor.fetchall()
cursor.close()
conn.close()

Limitazioni del Piano Gratuito

  • Connessioni Esterne: Limitate a una whitelist di siti (ma include molti servizi popolari come OpenAI)
  • Risorse CPU: Limitate, non adatte per applicazioni ad alto carico
  • Inattività: Il sito va in sospensione dopo un periodo di inattività
  • Spazio Disco: Limitato a 500MB
  • Database: Limitato a 100MB
  • Versioni Python: Solo quelle preinstallate, non personalizzabili

Suggerimenti Rapidi

  • Durante lo sviluppo, testa le connessioni esterne per verificare che funzionino nel piano gratuito
  • Ricordati di riavviare l’applicazione web dopo modifiche al codice o alle variabili d’ambiente
  • Usa l’ambiente virtuale per gestire le dipendenze
  • Controlla regolarmente i log dell’applicazione per eventuali errori

Conclusione

PythonAnywhere è un ottimo servizio per ospitare rapidamente applicazioni Python, incluse quelle che utilizzano API esterne come OpenAI. Il piano gratuito è più che sufficiente per progetti personali, siti dimostrativi o progetti in fase iniziale.

Leave a comment


Benvenuto su Salahzar.com

Qui trovi analisi critiche sull’intelligenza artificiale e le sue implicazioni sociali, scritte da chi viene da una impostazione umanistica e ha passato vent’anni a costruire mondi virtuali prima che diventassero “metaverso”.

Niente hype da Silicon Valley o entusiasmi acritici: sul tavolo ci sono le contraddizioni dell’innovazione tecnologica, i suoi miti fondativi, le narrazioni che usiamo per darle senso. Dai diari ucronici (storie alternative come strumento per capire i nostri bias cognitivi) alle newsletter settimanali sugli sviluppi dell’AI che richiedono aggiornamenti continui perché i trimestri sono già preistoria.

Se cerchi guide su come “fare soldi con ChatGPT” o liste di prompt miracolosi, sei nel posto sbagliato. Se invece ti interessa capire cosa sta succedendo davvero – tra hype, opportunità concrete e derive distopiche – sei nel posto giusto.

Umanesimo digitale senza retorica, analisi senza paternalismi, ironia senza cinismo.


Join the Club

Stay updated with our latest tips and other news by joining our newsletter.