{"id":7465,"date":"2025-12-08T10:06:06","date_gmt":"2025-12-08T09:06:06","guid":{"rendered":"https:\/\/www.sviluppomania.com\/it\/?p=7465"},"modified":"2025-12-08T10:08:00","modified_gmt":"2025-12-08T09:08:00","slug":"il-routing-in-flask","status":"publish","type":"post","link":"https:\/\/www.sviluppomania.com\/it\/il-routing-in-flask\/","title":{"rendered":"Il routing in Flask"},"content":{"rendered":"<p>In questo breve articolo vedremo nel dettaglio <b>che cosa sono le rotte<\/b> e <b>come si applica il routing<\/b> nel framework Flask.<\/p>\n<p>Innanzitutto, vediamo che cosa sono le rotte:<br \/>\nLe rotte in un framework ci permettono di collegare <b>una richiesta HTTP o HTTPS<\/b> a una funzione, la quale restituisce una risposta, come ad esempio <b>una vista, del testo, un file JSON o qualsiasi altro contenuto<\/b>.<\/p>\n<p>Nella barra degli indirizzi la route \u00e8 tutto ci\u00f2 che sta dopo l\u2019indirizzo base. Ad esempio:<\/p>\n<p><b>www.miosito.com\/homepage <\/b><\/p>\n<p><b>Vediamo che <strong data-start=\"69\" data-end=\"88\">www.miosito.com <\/strong><\/b>\u00e8 l\u2019indirizzo base, mentre <strong data-start=\"116\" data-end=\"129\">\/homepage<\/strong> \u00e8 la rotta che punta a una determinata funzione, la quale pu\u00f2 restituire, ad esempio, una pagina HTML che rappresenta la home del sito.<\/p>\n<p data-start=\"267\" data-end=\"297\">Consideriamo ora un altro URL:<\/p>\n<p data-start=\"299\" data-end=\"330\"><strong data-start=\"299\" data-end=\"330\">www.miosito.com\/articoli\/34<\/strong><\/p>\n<p>In maniera analoga all\u2019esempio precedente, <strong>www.miosito.com<\/strong> \u00e8 l\u2019indirizzo base, mentre <strong>\/articoli\/34<\/strong> \u00e8 la rotta che viene associata a una funzione \u2014 ipoteticamente chiamata <em data-start=\"511\" data-end=\"521\">articoli<\/em> \u2014 che probabilmente restituir\u00e0 una pagina dinamica contenente un articolo specifico, identificato dall\u2019ID 34.<\/p>\n<p>Come abbiamo detto in precedenza, una rotta collega un <b>URL<\/b> (detto anche <i>route<\/i>) a una particolare funzione che in Flask si chiama <b>view function<\/b>, spesso indicata in gergo come <b>vista<\/b>. Il collegamento viene fatto attraverso una mappatura. La mappatura delle rotte pu\u00f2 essere fatto nei seguenti modi:<\/p>\n<ol>\n<li>Attraverso il metodo esplicito integrato il core di Flask <b>add_url_rule().<\/b><\/li>\n<li>Attraverso l\u2019uso dei <b>decoratori.<\/b><\/li>\n<\/ol>\n<h2>add_url_rule()<\/h2>\n<p><b>add_url_rule()<\/b> \u00e8 un metodo dell\u2019oggetto Flask che serve a <b>creare una rotta manualmente<\/b>, senza usare i decoratori <b>@app.route()<\/b>.<\/p>\n<p>\u00c8 una funzione potente perch\u00e9 permette un controllo completo sulla configurazione delle rotte. Vediamo un semplice esempio:<\/p>\n<pre><code>\r\nfrom flask import Flask\r\n\r\napp = Flask(__name__)\r\n\r\n# Definisco la vista\r\n\r\ndef homepage():\r\n\r\n    return \"Hello world\"\r\n\r\n# Uso la funzione add_url_rule per creare la rotta\r\n\r\napp.add_url_rule(\"\/\", \"homepage\", homepage)\r\n\r\nif __name__ == \"__main__\":\r\n\r\n    app.run(debug=True)\r\n\r\n\u00a0\r\n<\/code><\/pre>\n<p>facciamo un breve descrizione del codice:<\/p>\n<ul>\n<li>from flask import Flask -&gt; Importo la libreria Flask<\/li>\n<li>app = Flask(__name__) -&gt; Crea un\u2019 istanza della classe Flask racchiusa in una variabile chiamata app. Questa rappresenta l\u2019applicazione.<\/li>\n<li>def homepage(): -&gt; Questa \u00e8 la view function.<\/li>\n<li>return &#8220;Hello world&#8221; -&gt; Ci\u00f2 che restituisce la vista.<\/li>\n<li>app.add_url_rule(&#8220;\/&#8221;, &#8220;homepage&#8221;, homepage) -&gt; L\u2019implementazione di app.add_rule()<\/li>\n<li>app.run(debug=True) -&gt; Avvia il server di sviluppo di Flask in modalit\u00e0 di debug.<\/li>\n<\/ul>\n<p>Possiamo vedere dall\u2019implementazione della funzione add_url_rule(&#8220;\/&#8221;, &#8220;homepage&#8221;, homepage) nel codice che vi sono tre parametri principali, in realt\u00e0 c\u2019\u00e8 ne esistono anche altri, ma per il momento esaminiamo quelli presenti nel codice di esempio:<\/p>\n<ul>\n<li>Il primo parametro \u00e8 detto <b>rule<\/b> che \u00e8 l\u2019url della rotta.\n<ul>\n<li>\u201c\/\u201d<\/li>\n<li>\u201c\/contatti\u201d<\/li>\n<li>\u201carticoli\/34\u201d<\/li>\n<\/ul>\n<\/li>\n<li>Il secondo parametro \u00e8 detto <b>endpoint<\/b> che \u00e8 il nome<b> univoco<\/b> della rotta dentro Flask. (Serve ad esempio per i collegamenti ipertestuali)<\/li>\n<li>Il terzo parametro \u00e8 la <b>view function,<\/b> semplicemente funzione Python da eseguire quando qualcuno visita la rotta.<\/li>\n<\/ul>\n<p>Vediamo anche altri parametri:<\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>provide_automatic_options e impostato a False, disattiva la generazione automatica della rotta OPTIONS. Di solito non serve modificarlo.<\/li>\n<li>**options \u2014 parametri aggiuntivi. Qui puoi mettere:\n<ul>\n<li>methods. Lista dei metodi HTTP ammessi:<b> methods=[&#8220;GET&#8221;, &#8220;POST&#8221;]<\/b><\/li>\n<li>default. Valori di default per i parametri della rotta: <b>view_func=user<\/b><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li>strict_slashes. Se False, accetta sia \/rotta che \/rotta\/: <b>strict_slashes=False<\/b><\/li>\n<\/ul>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>subdomain. Gestione dei sottodomini: <b>subdomain=&#8221;api&#8221;<\/b><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2>Le rotte con i decoratori<\/h2>\n<p>Il metodo di mappare le rotte tramite <b>decoratore<\/b> \u00e8 semplicemente un\u2019alternativa pi\u00f9 elegante e sintetica all\u2019uso della funzione <b>add_url_rule() <\/b>vista in precedenza. Nel seguente esempio vediamo come si applica.<\/p>\n<h2>I decoratori<\/h2>\n<p>Vediamo velocemente cosa sono i decoratori di Python. Un decoratore in Python serve a modificare o ad estendere funzionalit\u00e0 ad una funzione senza modificarne la struttura.<\/p>\n<p>Esempio:<\/p>\n<pre><code>\r\ndef mioDecoratore(func):\r\n    def wrapper(nome):\r\n        print(\"Prima della funzione\")\r\n        func(nome)\r\n        print(\"Dopo la funzione\")\r\n    return wrapper\r\n\r\n@mioDecoratore\r\ndef saluta(nome):\r\n    print(f\"Hello my dear {nome}!\")\r\n\r\nsaluta(\"Gino\")\r\n<\/code><\/pre>\n<p>I decoratori in Python sono uno strumento elegante e potente per estendere o modificare il comportamento di una funzione (o di una classe) senza toccarne il codice originale. Permettono di separare la logica principale da aspetti trasversali come logging, validazione, caching, misurazione dei tempi o controllo degli accessi.<\/p>\n<p>Adesso vediamo come applicare la tecnica dei decoratori alle rotte di Flask.<\/p>\n<pre>@app.route(\"\/\")\r\n\r\ndef homepage():\r\n\r\n    return \"Hello world!\"\r\n<\/pre>\n<p>Vediamo ora il codice scritto in precedenza:<\/p>\n<p>@app.route(&#8220;\/&#8221;) -&gt; Definisco il decoratore che come parametro ha l\u2019url.<\/p>\n<p>def homepage(): -&gt; Definisco la view function.<\/p>\n<p>return &#8220;Hello world!&#8221; -&gt; Restituisco un testo.<\/p>\n<p>L\u2019 uso dei decoratori ci permette di scrivere un codice pi\u00f9 immediato, leggibile e pulito che si avvicina di pi\u00f9 alle logiche di Flask.<\/p>\n<pre>@app.route(\"\/contatti\")\r\n\r\ndef contatti():\r\n\r\n   return \"Questa \u00e8 la mia pagina dei contatti!\"\r\n<\/pre>\n<p>Come possiamo vedere dal seguente codice il decoratore non fa altro che richiamare direttamente add_url_rule() nella funzione che richiama.<\/p>\n<pre>def route(self, rule, **options):\r\n\r\ndef decorator(f):\r\n\r\n    self.add_url_rule(rule, f.__name__, f, **options)\r\n\r\nreturn f\r\n\r\nreturn decorator\r\n<\/pre>\n<h2>Passaggio di parametri<\/h2>\n<p>Nel sistema di routing possiamo anche passare dei parametri alla view function. Per fare ci\u00f2 scriviamo la rule mettendo dopo il nome della rotta la variabile scritta nel seguente modo \/&lt;nome_variabile&gt; e sempre il nome della variabile come parametro della vista.<\/p>\n<p>Esempio:<\/p>\n<ol>\n<li>Usando add_url_rule().<\/li>\n<\/ol>\n<pre>def utenti(nome):\r\n\r\n    return f\"Ciao {nome}!\"\r\n\r\napp.add_url_rule(\"\/utenti\/&lt;nome&gt;\", \u201cutenti\", utenti)\r\n<\/pre>\n<ol>\n<li>Usando le rotte.<\/li>\n<\/ol>\n<pre>@app.route(\"\/utente\/&lt;nome&gt;\")\r\ndef utente(nome):\r\n\r\n  return f\"Ciao {nome}!\"\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>Possiamo anche specificare i parametri.<\/p>\n<pre>app.add_url_rule(\"\/utenti\/&lt;string:nome&gt;\", \u201cutenti\", utenti)\r\n\r\napp.add_url_rule(\"\/contatti\/&lt;int:id&gt;\", \u201ccontatti\", contatti)\r\n\r\n@app.route(\"\/utente\/&lt;string:nome&gt;\")\r\n\r\n@app.route(\"\/contatti\/&lt;int:id&gt;\")\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>Possiamo passare pi\u00f9 parametri:<\/p>\n<pre>def utenti(nome, cognome):\r\n\r\n    return f\"Ciao {nome} {cognome}!\"\r\n\r\napp.add_url_rule(\"\/utenti\/&lt;nome&gt;\/&lt;string:cognome&gt;\", \u201cutenti\", utenti)\r\n\r\n\r\n@app.route(\"\/utenti\/&lt;nome&gt;\/&lt;string:cognome&gt;\")\r\n\r\ndef utenti(nome, cognome):\r\n\r\n    return f\"Ciao {nome} {cognome}!\"\r\n<\/pre>\n<h2>Conclusioni<\/h2>\n<p>In questo breve articolo abbiamo visto i diversi modi di mappare le rotte in un\u2019applicazione Flask, dal metodo pi\u00f9 esplicito tramite <b>add_url_rule()<\/b> fino alla forma pi\u00f9 elegante e leggibile offerta dai <b>decoratori.<\/b> Abbiamo inoltre osservato come sia possibile arricchire gli URL con variabili dinamiche e tipi specifici, rendendo le nostre rotte pi\u00f9 flessibili e adatte a gestire scenari reali.<\/p>\n<p>La gestione delle rotte \u00e8 uno degli aspetti fondamentali nello sviluppo di un\u2019applicazione web, perch\u00e9 permette di controllare il flusso di navigazione e di collegare in modo chiaro ogni URL alla logica corrispondente. Capire bene questi meccanismi \u00e8 quindi un passo essenziale per lavorare con Flask in modo efficace.<\/p>\n<p>&nbsp;<\/p>","protected":false},"excerpt":{"rendered":"<p>In questo breve articolo vedremo nel dettaglio che cosa sono le rotte e come si applica il routing nel framework&#8230;<\/p>\n","protected":false},"author":174,"featured_media":7477,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","_vp_format_video_url":"","_vp_image_focal_point":[],"footnotes":""},"categories":[298],"tags":[],"class_list":["post-7465","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programming_languages"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Il routing in Flask<\/title>\n<meta name=\"description\" content=\"SviluppoMania | Blog professionale dedicato alla Tecnologia! Tools - Recensioni e tanto altro\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.sviluppomania.com\/it\/il-routing-in-flask\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Il routing in Flask\" \/>\n<meta property=\"og:description\" content=\"SviluppoMania | Blog professionale dedicato alla Tecnologia! Tools - Recensioni e tanto altro\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.sviluppomania.com\/it\/il-routing-in-flask\/\" \/>\n<meta property=\"og:site_name\" content=\"SviluppoMania | Blog professionale dedicato alla Tecnologia!\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SviluppoManiaCom\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-08T09:06:06+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-08T09:08:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.sviluppomania.com\/wp-content\/uploads\/2025\/12\/Flask.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"438\" \/>\n\t<meta property=\"og:image:height\" content=\"245\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"MARCO.VERGNANI\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SviluppoMania\" \/>\n<meta name=\"twitter:site\" content=\"@SviluppoMania\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"MARCO.VERGNANI\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.sviluppomania.com\\\/it\\\/il-routing-in-flask\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.sviluppomania.com\\\/it\\\/il-routing-in-flask\\\/\"},\"author\":{\"name\":\"MARCO.VERGNANI\",\"@id\":\"https:\\\/\\\/www.sviluppomania.com\\\/it\\\/#\\\/schema\\\/person\\\/3df736103fd3a1e84c63a2807f433c61\"},\"headline\":\"Il routing in Flask\",\"datePublished\":\"2025-12-08T09:06:06+00:00\",\"dateModified\":\"2025-12-08T09:08:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.sviluppomania.com\\\/it\\\/il-routing-in-flask\\\/\"},\"wordCount\":902,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.sviluppomania.com\\\/it\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.sviluppomania.com\\\/it\\\/il-routing-in-flask\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.sviluppomania.com\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/Flask.webp\",\"articleSection\":[\"LINGUAGGI &amp; PROGRAMMAZIONE\"],\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.sviluppomania.com\\\/it\\\/il-routing-in-flask\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.sviluppomania.com\\\/it\\\/il-routing-in-flask\\\/\",\"url\":\"https:\\\/\\\/www.sviluppomania.com\\\/it\\\/il-routing-in-flask\\\/\",\"name\":\"Il routing in Flask\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.sviluppomania.com\\\/it\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.sviluppomania.com\\\/it\\\/il-routing-in-flask\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.sviluppomania.com\\\/it\\\/il-routing-in-flask\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.sviluppomania.com\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/Flask.webp\",\"datePublished\":\"2025-12-08T09:06:06+00:00\",\"dateModified\":\"2025-12-08T09:08:00+00:00\",\"description\":\"SviluppoMania | Blog professionale dedicato alla Tecnologia! Tools - Recensioni e tanto altro\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.sviluppomania.com\\\/it\\\/il-routing-in-flask\\\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[[\"https:\\\/\\\/www.sviluppomania.com\\\/it\\\/il-routing-in-flask\\\/\"]]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/www.sviluppomania.com\\\/it\\\/il-routing-in-flask\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.sviluppomania.com\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/Flask.webp\",\"contentUrl\":\"https:\\\/\\\/www.sviluppomania.com\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/Flask.webp\",\"width\":438,\"height\":245},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.sviluppomania.com\\\/it\\\/il-routing-in-flask\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.sviluppomania.com\\\/it\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Il routing in Flask\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.sviluppomania.com\\\/it\\\/#website\",\"url\":\"https:\\\/\\\/www.sviluppomania.com\\\/it\\\/\",\"name\":\"SviluppoMania | Blog professionale dedicato alla Tecnologia!\",\"description\":\"SviluppoMania | Blog professionale dedicato alla Tecnologia! Tools - Recensioni e tanto altro\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.sviluppomania.com\\\/it\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.sviluppomania.com\\\/it\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.sviluppomania.com\\\/it\\\/#organization\",\"name\":\"SviluppoMania.com\",\"url\":\"https:\\\/\\\/www.sviluppomania.com\\\/it\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/www.sviluppomania.com\\\/it\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.sviluppomania.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/SviluppoMania-logo2-_1_.webp\",\"contentUrl\":\"https:\\\/\\\/www.sviluppomania.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/SviluppoMania-logo2-_1_.webp\",\"width\":474,\"height\":408,\"caption\":\"SviluppoMania.com\"},\"image\":{\"@id\":\"https:\\\/\\\/www.sviluppomania.com\\\/it\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/SviluppoManiaCom\",\"https:\\\/\\\/x.com\\\/SviluppoMania\",\"https:\\\/\\\/www.instagram.com\\\/sviluppomania\\\/\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UC5CuM88LjzBeC23s2DPdveA\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.sviluppomania.com\\\/it\\\/#\\\/schema\\\/person\\\/3df736103fd3a1e84c63a2807f433c61\",\"name\":\"MARCO.VERGNANI\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/lh3.googleusercontent.com\\\/a\\\/ACg8ocIrc635RIrznZifq60wpv-NGquftAXU0DTmwwGSdlV4FbvhpkIn=s96-c?sz=50\",\"url\":\"https:\\\/\\\/lh3.googleusercontent.com\\\/a\\\/ACg8ocIrc635RIrznZifq60wpv-NGquftAXU0DTmwwGSdlV4FbvhpkIn=s96-c?sz=50\",\"contentUrl\":\"https:\\\/\\\/lh3.googleusercontent.com\\\/a\\\/ACg8ocIrc635RIrznZifq60wpv-NGquftAXU0DTmwwGSdlV4FbvhpkIn=s96-c?sz=50\",\"caption\":\"MARCO.VERGNANI\"},\"description\":\"Nella mia vita a 12 anni e' entrato a far parte un Intel 80286 con 4MB di RAM, un Hard disk da 20 MB e una primissima scheda VGA appena uscita e da allora mi si e' aperto un mondo pieno di bit. Appassionato di programmazione fin da piccolo, mi diverto a costruire piccoli robottini. Curioso delle molteplici applicazioni che le macchine automatiche possono compiere, e adoro vedere volare quegli strani oggetti chiamati droni.\",\"url\":\"https:\\\/\\\/www.sviluppomania.com\\\/it\\\/author\\\/marco-vergnani\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Il routing in Flask","description":"SviluppoMania | Blog professionale dedicato alla Tecnologia! Tools - Recensioni e tanto altro","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.sviluppomania.com\/it\/il-routing-in-flask\/","og_locale":"it_IT","og_type":"article","og_title":"Il routing in Flask","og_description":"SviluppoMania | Blog professionale dedicato alla Tecnologia! Tools - Recensioni e tanto altro","og_url":"https:\/\/www.sviluppomania.com\/it\/il-routing-in-flask\/","og_site_name":"SviluppoMania | Blog professionale dedicato alla Tecnologia!","article_publisher":"https:\/\/www.facebook.com\/SviluppoManiaCom","article_published_time":"2025-12-08T09:06:06+00:00","article_modified_time":"2025-12-08T09:08:00+00:00","og_image":[{"width":438,"height":245,"url":"https:\/\/www.sviluppomania.com\/wp-content\/uploads\/2025\/12\/Flask.webp","type":"image\/webp"}],"author":"MARCO.VERGNANI","twitter_card":"summary_large_image","twitter_creator":"@SviluppoMania","twitter_site":"@SviluppoMania","twitter_misc":{"Scritto da":"MARCO.VERGNANI","Tempo di lettura stimato":"6 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.sviluppomania.com\/it\/il-routing-in-flask\/#article","isPartOf":{"@id":"https:\/\/www.sviluppomania.com\/it\/il-routing-in-flask\/"},"author":{"name":"MARCO.VERGNANI","@id":"https:\/\/www.sviluppomania.com\/it\/#\/schema\/person\/3df736103fd3a1e84c63a2807f433c61"},"headline":"Il routing in Flask","datePublished":"2025-12-08T09:06:06+00:00","dateModified":"2025-12-08T09:08:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.sviluppomania.com\/it\/il-routing-in-flask\/"},"wordCount":902,"commentCount":0,"publisher":{"@id":"https:\/\/www.sviluppomania.com\/it\/#organization"},"image":{"@id":"https:\/\/www.sviluppomania.com\/it\/il-routing-in-flask\/#primaryimage"},"thumbnailUrl":"https:\/\/www.sviluppomania.com\/wp-content\/uploads\/2025\/12\/Flask.webp","articleSection":["LINGUAGGI &amp; PROGRAMMAZIONE"],"inLanguage":"it-IT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.sviluppomania.com\/it\/il-routing-in-flask\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.sviluppomania.com\/it\/il-routing-in-flask\/","url":"https:\/\/www.sviluppomania.com\/it\/il-routing-in-flask\/","name":"Il routing in Flask","isPartOf":{"@id":"https:\/\/www.sviluppomania.com\/it\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.sviluppomania.com\/it\/il-routing-in-flask\/#primaryimage"},"image":{"@id":"https:\/\/www.sviluppomania.com\/it\/il-routing-in-flask\/#primaryimage"},"thumbnailUrl":"https:\/\/www.sviluppomania.com\/wp-content\/uploads\/2025\/12\/Flask.webp","datePublished":"2025-12-08T09:06:06+00:00","dateModified":"2025-12-08T09:08:00+00:00","description":"SviluppoMania | Blog professionale dedicato alla Tecnologia! Tools - Recensioni e tanto altro","breadcrumb":{"@id":"https:\/\/www.sviluppomania.com\/it\/il-routing-in-flask\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":[["https:\/\/www.sviluppomania.com\/it\/il-routing-in-flask\/"]]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/www.sviluppomania.com\/it\/il-routing-in-flask\/#primaryimage","url":"https:\/\/www.sviluppomania.com\/wp-content\/uploads\/2025\/12\/Flask.webp","contentUrl":"https:\/\/www.sviluppomania.com\/wp-content\/uploads\/2025\/12\/Flask.webp","width":438,"height":245},{"@type":"BreadcrumbList","@id":"https:\/\/www.sviluppomania.com\/it\/il-routing-in-flask\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.sviluppomania.com\/it\/"},{"@type":"ListItem","position":2,"name":"Il routing in Flask"}]},{"@type":"WebSite","@id":"https:\/\/www.sviluppomania.com\/it\/#website","url":"https:\/\/www.sviluppomania.com\/it\/","name":"SviluppoMania | Blog professionale dedicato alla Tecnologia!","description":"SviluppoMania | Blog professionale dedicato alla Tecnologia! Tools - Recensioni e tanto altro","publisher":{"@id":"https:\/\/www.sviluppomania.com\/it\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.sviluppomania.com\/it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Organization","@id":"https:\/\/www.sviluppomania.com\/it\/#organization","name":"SviluppoMania.com","url":"https:\/\/www.sviluppomania.com\/it\/","logo":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/www.sviluppomania.com\/it\/#\/schema\/logo\/image\/","url":"https:\/\/www.sviluppomania.com\/wp-content\/uploads\/2020\/12\/SviluppoMania-logo2-_1_.webp","contentUrl":"https:\/\/www.sviluppomania.com\/wp-content\/uploads\/2020\/12\/SviluppoMania-logo2-_1_.webp","width":474,"height":408,"caption":"SviluppoMania.com"},"image":{"@id":"https:\/\/www.sviluppomania.com\/it\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SviluppoManiaCom","https:\/\/x.com\/SviluppoMania","https:\/\/www.instagram.com\/sviluppomania\/","https:\/\/www.youtube.com\/channel\/UC5CuM88LjzBeC23s2DPdveA"]},{"@type":"Person","@id":"https:\/\/www.sviluppomania.com\/it\/#\/schema\/person\/3df736103fd3a1e84c63a2807f433c61","name":"MARCO.VERGNANI","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/lh3.googleusercontent.com\/a\/ACg8ocIrc635RIrznZifq60wpv-NGquftAXU0DTmwwGSdlV4FbvhpkIn=s96-c?sz=50","url":"https:\/\/lh3.googleusercontent.com\/a\/ACg8ocIrc635RIrznZifq60wpv-NGquftAXU0DTmwwGSdlV4FbvhpkIn=s96-c?sz=50","contentUrl":"https:\/\/lh3.googleusercontent.com\/a\/ACg8ocIrc635RIrznZifq60wpv-NGquftAXU0DTmwwGSdlV4FbvhpkIn=s96-c?sz=50","caption":"MARCO.VERGNANI"},"description":"Nella mia vita a 12 anni e' entrato a far parte un Intel 80286 con 4MB di RAM, un Hard disk da 20 MB e una primissima scheda VGA appena uscita e da allora mi si e' aperto un mondo pieno di bit. Appassionato di programmazione fin da piccolo, mi diverto a costruire piccoli robottini. Curioso delle molteplici applicazioni che le macchine automatiche possono compiere, e adoro vedere volare quegli strani oggetti chiamati droni.","url":"https:\/\/www.sviluppomania.com\/it\/author\/marco-vergnani\/"}]}},"_links":{"self":[{"href":"https:\/\/www.sviluppomania.com\/it\/wp-json\/wp\/v2\/posts\/7465","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sviluppomania.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sviluppomania.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sviluppomania.com\/it\/wp-json\/wp\/v2\/users\/174"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sviluppomania.com\/it\/wp-json\/wp\/v2\/comments?post=7465"}],"version-history":[{"count":4,"href":"https:\/\/www.sviluppomania.com\/it\/wp-json\/wp\/v2\/posts\/7465\/revisions"}],"predecessor-version":[{"id":7481,"href":"https:\/\/www.sviluppomania.com\/it\/wp-json\/wp\/v2\/posts\/7465\/revisions\/7481"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.sviluppomania.com\/it\/wp-json\/wp\/v2\/media\/7477"}],"wp:attachment":[{"href":"https:\/\/www.sviluppomania.com\/it\/wp-json\/wp\/v2\/media?parent=7465"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sviluppomania.com\/it\/wp-json\/wp\/v2\/categories?post=7465"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sviluppomania.com\/it\/wp-json\/wp\/v2\/tags?post=7465"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}