{"id":477257,"date":"2023-08-09T09:09:43","date_gmt":"2023-08-09T09:09:43","guid":{"rendered":""},"modified":"2023-09-05T11:14:23","modified_gmt":"2023-09-05T11:14:23","slug":"flask","status":"publish","type":"wiki","link":"https:\/\/oneproxy.pro\/kr\/wiki\/flask\/","title":{"rendered":"\ud50c\ub77c\uc2a4\ud06c"},"content":{"rendered":"<p>Flask\ub294 Python\uc73c\ub85c \uc791\uc131\ub41c \ub9c8\uc774\ud06c\ub85c \uc6f9 \ud504\ub808\uc784\uc6cc\ud06c\uc785\ub2c8\ub2e4. \uc591\uc2dd \uc720\ud6a8\uc131 \uac80\uc0ac\ub098 \ub370\uc774\ud130\ubca0\uc774\uc2a4 \ucd94\uc0c1\ud654\uc640 \uac19\uc740 \uc644\uc804\ud55c \uae30\ub2a5\uc744 \uac16\ucd98 \uc6f9 \ud504\ub808\uc784\uc6cc\ud06c\uc5d0\uc11c \uc77c\ubc18\uc801\uc73c\ub85c \ubc1c\uacac\ub418\ub294 \ud2b9\uc815 \uae30\ub2a5\uc774 \ud3ec\ud568\ub418\uc5b4 \uc788\uc9c0 \uc54a\uae30 \ub54c\ubb38\uc5d0 \uc885\uc885 &quot;\ub9c8\uc774\ud06c\ub85c&quot; \ud504\ub808\uc784\uc6cc\ud06c\ub85c \uc124\uba85\ub429\ub2c8\ub2e4. \ub300\uc2e0 Flask\ub294 \uac00\ubccd\uace0 \uc0ac\uc6a9\ud558\uae30 \uc26c\uc6b4 \uc6f9 \uc0ac\uc774\ud2b8 \uad6c\ucd95\uc5d0 \ud544\uc694\ud55c \uae30\ubcf8 \uad6c\uc870\ub97c \uc81c\uacf5\ud569\ub2c8\ub2e4. \ud544\uc694\ud560 \ub54c \ud655\uc7a5 \uae30\ub2a5\uc744 \ud1b5\ud574 \ub204\ub77d\ub41c \uae30\ub2a5\uc744 \ucd94\uac00\ud560 \uc218 \uc788\uc5b4 \ud655\uc7a5\uc131\uc774 \ub6f0\uc5b4\ub0a9\ub2c8\ub2e4.<\/p>\n<h2>\ud50c\ub77c\uc2a4\ud06c\uc758 \uae30\uc6d0\uacfc \uc5ed\uc0ac<\/h2>\n<p>Flask\ub294 \uad6d\uc81c\uc801\uc778 Python \uc560\ud638\uac00 \uadf8\ub8f9\uc778 Pocoo \ud300\uc758 \ud65c\ub3d9\uc801\uc778 \uba64\ubc84\uc778 Armin Ronacher\uc5d0 \uc758\ud574 \ub9cc\ub4e4\uc5b4\uc84c\uc2b5\ub2c8\ub2e4. Flask\uc758 \uccab \ubc88\uc9f8 \uacf5\uac1c \ubc84\uc804\uc740 2010\ub144 4\uc6d4 1\uc77c\uc5d0 \ucd9c\uc2dc\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \uc774 \ud504\ub85c\uc81d\ud2b8\ub294 \ucc98\uc74c\uc5d0\ub294 \ub9cc\uc6b0\uc808 \ub18d\ub2f4\uc758 \uc77c\ubd80\uc600\uc9c0\ub9cc \uc9c4\uc9c0\ud558\uace0 \uc778\uae30 \uc788\ub294 \ud504\ub85c\uc81d\ud2b8\ub85c \ubcc0\ud588\uc2b5\ub2c8\ub2e4.<\/p>\n<p>Werkzeug\uc758 \uac04\ub2e8\ud55c \ub77c\uc6b0\ud305 \uc2dc\uc2a4\ud15c\uacfc Jinja2\uc758 \ud15c\ud50c\ub9bf \uc5d4\uc9c4\uc744 \uacb0\ud569\ud55c \uacb0\uacfc\ub85c \uac1c\ubc1c\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \uc774 \ub450 \uad6c\uc131 \uc694\uc18c\ub3c4 Pocoo \ud504\ub85c\uc81d\ud2b8\uc785\ub2c8\ub2e4. \uc218\ub144\uc5d0 \uac78\uccd0 Flask\ub294 \ub2e8\uc21c\uc131, \uc720\uc5f0\uc131 \ubc0f \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0 \ub300\ud55c \uc138\ubc00\ud55c \uc81c\uc5b4\ub85c \uc778\ud574 \uc6f9 \uac1c\ubc1c \ucee4\ubba4\ub2c8\ud2f0\uc5d0\uc11c \uac15\ub825\ud55c \uc9c0\uc9c0\ub97c \uc5bb\uc5c8\uc2b5\ub2c8\ub2e4.<\/p>\n<h2>\ud50c\ub77c\uc2a4\ud06c \uc2ec\uce35 \ud0d0\uad6c<\/h2>\n<p>Flask\ub294 Python \ub77c\uc774\ube0c\ub7ec\ub9ac\uc778 WSGI(\uc6f9 \uc11c\ubc84 \uac8c\uc774\ud2b8\uc6e8\uc774 \uc778\ud130\ud398\uc774\uc2a4) \ud234\ud0b7\uacfc Jinja2 \ud15c\ud50c\ub9bf \uc5d4\uc9c4\uc744 \uae30\ubc18\uc73c\ub85c \ud569\ub2c8\ub2e4. WSGI\ub294 Python \uc6f9 \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uac1c\ubc1c\uc758 \ud45c\uc900\uc785\ub2c8\ub2e4. Jinja2\ub294 Python\uc6a9 \ud15c\ud50c\ub9bf \uc5d4\uc9c4\uc785\ub2c8\ub2e4. \uc989, \ud504\ub85c\uadf8\ub798\ubc0d \ubc29\uc2dd\uc73c\ub85c \ubcf5\uc7a1\ud55c HTML \ub610\ub294 XML \ubb38\uc11c\ub97c \uc0dd\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>Flask\ub294 \uc0ac\uc6a9\ud558\uae30 \uc27d\uace0 \ube60\ub974\uac8c \uc2dc\uc791\ud560 \uc218 \uc788\ub3c4\ub85d \uc124\uacc4\ub418\uc5c8\uc9c0\ub9cc \ud06c\uace0 \ubcf5\uc7a1\ud55c \uc6f9 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \ucc98\ub9ac\ud560 \uc218 \uc788\ub3c4\ub85d \uc81c\uc791\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \ub9c8\uc774\ud06c\ub85c \uc811\ub450\uc0ac\ub294 \ucf54\uc5b4\ub97c \ub2e8\uc21c\ud558\uba74\uc11c\ub3c4 \ud655\uc7a5 \uac00\ub2a5\ud558\uac8c \uc720\uc9c0\ud558\ub294 \uac83\uc744 \ubaa9\ud45c\ub85c \ud55c\ub2e4\ub294 \uac83\uc744 \uc758\ubbf8\ud569\ub2c8\ub2e4.<\/p>\n<p>Flask\uc5d0\ub294 \uae30\ubcf8 \ub370\uc774\ud130\ubca0\uc774\uc2a4, \uc591\uc2dd \uc720\ud6a8\uc131 \uac80\uc0ac \ub610\ub294 \ub2e4\ub978 \uae30\uc220\uc774 \uc801\uc808\ud560 \uc218 \uc788\ub294 \uc5b4\ub5a4 \uac83\ub3c4 \uc5c6\uc2b5\ub2c8\ub2e4. \ub300\uc2e0, \ub9c8\uce58 Flask \uc790\uccb4\uc5d0\uc11c \uad6c\ud604\ub41c \uac83\ucc98\ub7fc \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0 \uc774\ub7ec\ud55c \uae30\ub2a5\uc744 \ucd94\uac00\ud558\ub294 \ud655\uc7a5\uc744 \uc9c0\uc6d0\ud569\ub2c8\ub2e4. \uc774\ub7ec\ud55c \uc811\uadfc \ubc29\uc2dd\uc744 \ud1b5\ud574 Flask\ub294 \uac1c\ubc1c\uc790\uac00 \uc120\ud638\ud558\ub294 \ub3c4\uad6c\uc640 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc120\ud0dd\ud560 \uc218 \uc788\uc73c\ubbc0\ub85c \uc720\uc5f0\ud55c \uc120\ud0dd\uc774 \ub429\ub2c8\ub2e4.<\/p>\n<h2>\ud50c\ub77c\uc2a4\ud06c\uc758 \ub0b4\ubd80 \uad6c\uc870\uc640 \uae30\ub2a5<\/h2>\n<p>\uae30\ubcf8\uc801\uc73c\ub85c Flask\ub294 Werkzeug\uc640 Jinja2\uc758 \uac04\ub2e8\ud55c \uc870\ud569\uc785\ub2c8\ub2e4. Werkzeug\ub294 Flask\uac00 \uc694\uccad \ubc0f \uc751\ub2f5 \uac1c\uccb4, URL \ub77c\uc6b0\ud305, HTTP \uc720\ud2f8\ub9ac\ud2f0\uc640 \uac19\uc740 \ud558\uc704 \uc218\uc900 \uae30\ub2a5\uc744 \ucc98\ub9ac\ud558\ub294 \ub370 \uc0ac\uc6a9\ud558\ub294 Python\uc6a9 WSGI \uc720\ud2f8\ub9ac\ud2f0 \ub77c\uc774\ube0c\ub7ec\ub9ac\uc785\ub2c8\ub2e4. \ubc18\uba74\uc5d0 Jinja2\ub294 Flask\uac00 \ubdf0 \ub80c\ub354\ub9c1\uc5d0 \uc0ac\uc6a9\ud558\ub294 Python\uc6a9 \ud15c\ud50c\ub9bf \uc5d4\uc9c4\uc785\ub2c8\ub2e4.<\/p>\n<p>\uc77c\ubc18\uc801\uc778 Flask \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0\uc11c \ud750\ub984\uc740 \uc6f9 \ube0c\ub77c\uc6b0\uc800\uc640 \uac19\uc740 \ud074\ub77c\uc774\uc5b8\ud2b8\uac00 Flask \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc774 \uc2e4\ud589 \uc911\uc778 \uc11c\ubc84\uc5d0 \uc694\uccad\uc744 \ubcf4\ub0b4\ub294 \uac83\uc73c\ub85c \uc2dc\uc791\ub429\ub2c8\ub2e4. \uadf8\ub7f0 \ub2e4\uc74c \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc740 \uc694\uccad\uc744 \ucc98\ub9ac\ud558\uace0 \ud074\ub77c\uc774\uc5b8\ud2b8\uc5d0 \uc751\ub2f5\uc744 \ub2e4\uc2dc \ubc18\ud658\ud569\ub2c8\ub2e4. Flask \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc740 \ub77c\uc6b0\ud305\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc694\uccad\uc758 URL\uc744 \uae30\ubc18\uc73c\ub85c \uc2e4\ud589\ud560 \ub17c\ub9ac\ub97c \uacb0\uc815\ud558\uace0 \uc774 \ub17c\ub9ac\ub294 \uc751\ub2f5\uc774 \ubc18\ud658\ub418\ub294 \uac83\uc73c\ub85c \ub05d\ub0a9\ub2c8\ub2e4.<\/p>\n<h2>\ud50c\ub77c\uc2a4\ud06c\uc758 \uc8fc\uc694 \ud2b9\uc9d5<\/h2>\n<ol>\n<li>\n<p><strong>\uac04\ub2e8:<\/strong> \ud50c\ub77c\uc2a4\ud06c\ub294 \ub9e4\uc6b0 \uac04\ub2e8\ud558\uace0 \uc0ac\uc6a9\ud558\uae30 \uc27d\uc2b5\ub2c8\ub2e4. \uc774\ub294 \ubc29\ud574\uac00 \ub418\uc9c0 \uc54a\ub294 \ub2e8\uc21c\ud558\uace0 \uac04\ub2e8\ud55c \ud504\ub808\uc784\uc6cc\ud06c\ub85c, \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uad6c\ucd95\uc5d0 \uc9d1\uc911\ud560 \uc218 \uc788\ub3c4\ub85d \ud574\uc90d\ub2c8\ub2e4.<\/p>\n<\/li>\n<li>\n<p><strong>\uc720\uc5f0\uc131:<\/strong> Flask\ub294 \uae30\ubcf8\uc801\uc73c\ub85c \uc81c\uacf5\ub418\ub294 \uae30\ub2a5\uc774 \uac70\uc758 \uc5c6\uc9c0\ub9cc \ud655\uc7a5\uc131\uc774 \ub6f0\uc5b4\ub098\ub3c4\ub85d \uc124\uacc4\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \uc989, \uc591\uc2dd \uc720\ud6a8\uc131 \uac80\uc0ac\ubd80\ud130 \uc774\ubbf8\uc9c0 \uc5c5\ub85c\ub4dc\uae4c\uc9c0 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0 \ud544\uc694\ud55c \uac70\uc758 \ubaa8\ub4e0 \uae30\ub2a5\uc744 \ucd94\uac00\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<\/li>\n<li>\n<p><strong>\uc138\ubc00\ud55c \uc81c\uc5b4:<\/strong> Flask\ub294 \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uad6c\uc131\uc744 \uc0ac\uc6a9\uc790\uc5d0\uac8c \ub9e1\uae41\ub2c8\ub2e4. \uc989, \ud2b9\uc815 \ud504\ub85c\uc81d\ud2b8\uc5d0 \uac00\uc7a5 \uc801\ud569\ud55c \ubc29\uc2dd\uc73c\ub85c Flask \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uad6c\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<\/li>\n<li>\n<p><strong>HTTP \uc694\uccad \ucc98\ub9ac:<\/strong> Flask\ub294 HTTP \uc694\uccad\uc744 \ucc98\ub9ac\ud558\ub294 \ubc29\ubc95\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4. \uc774\ub97c \ud1b5\ud574 \uc11c\ubc84\uc5d0 \ud2b9\uc815 HTTP \uc694\uccad\uc774 \uc774\ub8e8\uc5b4\uc9c8 \ub54c \uc2e4\ud589\ub420 \uae30\ub2a5\uc744 \uc815\uc758\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<\/li>\n<li>\n<p><strong>URL \ub77c\uc6b0\ud305:<\/strong> Flask\ub97c \uc0ac\uc6a9\ud558\uba74 URL\uc744 Python \ud568\uc218\uc5d0 \ub9e4\ud551\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc989, \uc6f9 \ud398\uc774\uc9c0\uc5d0 \ub300\ud55c \uc608\uc05c URL\uc744 \uc27d\uac8c \ub9cc\ub4e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<\/li>\n<li>\n<p><strong>\ud15c\ud50c\ub9bf \uc5d4\uc9c4:<\/strong> Flask\ub294 \ud15c\ud50c\ub9bf \uc5d4\uc9c4\uc73c\ub85c Jinja2\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \uc774\ub294 \uc0ac\uc6a9\uc790\uc758 \ube0c\ub77c\uc6b0\uc800\uac00 \ub80c\ub354\ub9c1\ud560 \uc218 \uc788\ub294 HTML, XML \ub610\ub294 \uae30\ud0c0 \ub9c8\ud06c\uc5c5 \ud615\uc2dd\uc744 \uc0dd\uc131\ud560 \uc218 \uc788\uc74c\uc744 \uc758\ubbf8\ud569\ub2c8\ub2e4.<\/p>\n<\/li>\n<\/ol>\n<h2>\ud50c\ub77c\uc2a4\ud06c \uc751\uc6a9 \uc720\ud615<\/h2>\n<p>\ub2e4\uc591\ud55c \uc720\ud615\uc758 \uc790\ub3d9\ucc28\ub098 \ud734\ub300\ud3f0\uc774 \uc788\ub294 \uac83\ucc98\ub7fc Flask\uc5d0\ub3c4 \ub69c\ub837\ud55c &quot;\uc720\ud615&quot;\uc774 \uc5c6\uc2b5\ub2c8\ub2e4. \uadf8\ub7ec\ub098 \ubcf5\uc7a1\uc131\uacfc \ud3ec\ud568\ud560 \uc218 \uc788\ub294 \ud2b9\uc815 \uae30\ub2a5\uc744 \uae30\uc900\uc73c\ub85c Flask \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \ubd84\ub958\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uae30\ubcf8\uc801\uc778 \ubd84\uc11d\uc740 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<ul>\n<li><strong>\uc18c\uaddc\ubaa8 \uc560\ud50c\ub9ac\ucf00\uc774\uc158:<\/strong> \uc774\ub294 \uba87 \uac00\uc9c0 \uacbd\ub85c\uac00 \uc788\ub294 \uac04\ub2e8\ud55c \uc6f9 \ud398\uc774\uc9c0\uc77c \uc218\ub3c4 \uc788\uace0 \ub300\uaddc\ubaa8 \ud504\ub85c\uc81d\ud2b8\ub97c \uc704\ud55c \ud504\ub85c\ud1a0\ud0c0\uc785\uc77c \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n<li><strong>RESTful API:<\/strong> Flask\ub294 \ud2b9\uc815 \ud615\uc2dd(\uc77c\ubc18\uc801\uc73c\ub85c JSON)\uc73c\ub85c \uc6f9 \uc11c\ube44\uc2a4\uc640 \uc0c1\ud638 \uc791\uc6a9\ud558\uae30 \uc704\ud55c \uc778\ud130\ud398\uc774\uc2a4\uc778 RESTful API\ub97c \uad6c\ucd95\ud558\ub294 \ub370 \uc790\uc8fc \uc0ac\uc6a9\ub429\ub2c8\ub2e4.<\/li>\n<li><strong>\uc911\uac04 \uaddc\ubaa8 \uc6f9 \uc560\ud50c\ub9ac\ucf00\uc774\uc158:<\/strong> \uc5ec\uae30\uc5d0\ub294 \uc0ac\uc6a9\uc790 \uc778\uc99d, \uc591\uc2dd \uc720\ud6a8\uc131 \uac80\uc0ac, \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc0c1\ud638 \uc791\uc6a9\uacfc \uac19\uc740 \uae30\ub2a5\uc774 \ud3ec\ud568\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n<li><strong>\ub300\uaddc\ubaa8 \uc6f9 \uc560\ud50c\ub9ac\ucf00\uc774\uc158:<\/strong> \uc704 \uae30\ub2a5 \uc678\uc5d0\ub3c4 \uc774\ub7ec\ud55c \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0\ub294 \uc774\ubbf8\uc9c0 \ucc98\ub9ac \ub610\ub294 \uc2e4\uc2dc\uac04 \uba54\uc2dc\uc9d5\uacfc \uac19\uc740 \ub354 \ubcf5\uc7a1\ud55c \uae30\ub2a5\uc774 \ud3ec\ud568\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n<\/ul>\n<h2>Flask \uc0ac\uc6a9 \ubc29\ubc95, \ubb38\uc81c \ubc0f \ud574\uacb0 \ubc29\ubc95<\/h2>\n<p>Flask\ub294 \ub2e4\ubaa9\uc801\uc774\uba70 \uac04\ub2e8\ud55c \uc815\uc801 \uc6f9 \uc0ac\uc774\ud2b8 \uc0dd\uc131\ubd80\ud130 \ubcf5\uc7a1\ud55c \ub370\uc774\ud130 \uae30\ubc18 \uc6f9 \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \ub610\ub294 API \uad6c\ucd95\uc5d0 \uc774\ub974\uae30\uae4c\uc9c0 \ub2e4\uc591\ud55c \uc6f9 \uac1c\ubc1c \uc791\uc5c5\uc5d0 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uadf8\ub7ec\ub098 Flask\uc758 \ub2e8\uc21c\uc131\uacfc \uc720\uc5f0\uc131\uc740 \uc591\ub0a0\uc758 \uac80\uc774 \ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uac1c\ubc1c\uc790\uc5d0\uac8c\ub294 \ub2e4\uc591\ud55c \uc120\ud0dd \uc0ac\ud56d\uacfc \uad6c\ud604 \uc138\ubd80 \uc0ac\ud56d\uc774 \ub0a8\uc544 \uc788\uc2b5\ub2c8\ub2e4. \uac1c\ubc1c\uc790\uac00 \uc6f9 \ubcf4\uc548 \ubaa8\ubc94 \uc0ac\ub840\uc5d0 \uc775\uc219\ud558\uc9c0 \uc54a\uc73c\uba74 \uc774\ub7ec\ud55c \uc720\uc5f0\uc131\uc73c\ub85c \uc778\ud574 \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud558\uc5ec \ubcf4\uc548 \ucde8\uc57d\uc810\uc774 \ubc1c\uc0dd\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc774\ub7ec\ud55c \ubb38\uc81c\uc5d0 \ub300\ud55c \ud574\uacb0\ucc45\uc740 \uc885\uc885 \ud655\uc7a5 \uae30\ub2a5\uacfc \ud50c\ub7ec\uadf8\uc778\uc758 \ud615\ud0dc\ub85c \uc81c\uacf5\ub429\ub2c8\ub2e4. Flask\uc758 \ud655\uc7a5 \uac00\ub2a5\ud55c \ud2b9\uc131\uc740 \uc27d\uac8c \uc5f0\uacb0\ud558\uc5ec \uae30\ub2a5\uc744 \ucd94\uac00\ud560 \uc218 \uc788\ub294 \uc218\ub9ce\uc740 \ud0c0\uc0ac \ub77c\uc774\ube0c\ub7ec\ub9ac\uac00 \uc788\uc74c\uc744 \uc758\ubbf8\ud569\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4 Flask-SQLAlchemy\ub294 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc640\uc758 \uac04\ub2e8\ud558\uace0 \ud6a8\uc728\uc801\uc778 \uc0c1\ud638 \uc791\uc6a9\uc744 \uc81c\uacf5\ud558\uace0 Flask-WTF\ub294 \uc591\uc2dd \uc720\ud6a8\uc131 \uac80\uc0ac \ubc0f CSRF \ubcf4\ud638\ub97c \uc9c0\uc6d0\ud569\ub2c8\ub2e4.<\/p>\n<h2>\uc720\uc0ac\ud55c \ud504\ub808\uc784\uc6cc\ud06c\uc640\uc758 \ube44\uad50<\/h2>\n<table>\n<thead>\n<tr>\n<th>\ud2b9\uc9d5<\/th>\n<th>\ud50c\ub77c\uc2a4\ud06c<\/th>\n<th>\uc7a5\uace0<\/th>\n<th>Express.js<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\uc5b8\uc5b4<\/td>\n<td>\ud30c\uc774\uc36c<\/td>\n<td>\ud30c\uc774\uc36c<\/td>\n<td>\uc790\ubc14\uc2a4\ud06c\ub9bd\ud2b8<\/td>\n<\/tr>\n<tr>\n<td>\ud15c\ud50c\ub9bf \uc5d4\uc9c4<\/td>\n<td>\uc9c4\uc7902<\/td>\n<td>\uc7a5\uace0<\/td>\n<td>EJS, \ud37c\uadf8<\/td>\n<\/tr>\n<tr>\n<td>ORM<\/td>\n<td>\ud655\ub300<\/td>\n<td>\ub0b4\uc7a5<\/td>\n<td>\ud655\ub300<\/td>\n<\/tr>\n<tr>\n<td>\uc591\uc2dd \uac80\uc99d<\/td>\n<td>\ud655\ub300<\/td>\n<td>\ub0b4\uc7a5<\/td>\n<td>\ud655\ub300<\/td>\n<\/tr>\n<tr>\n<td>\uad00\ub9ac \uc778\ud130\ud398\uc774\uc2a4<\/td>\n<td>\ud655\ub300<\/td>\n<td>\ub0b4\uc7a5<\/td>\n<td>\ud655\ub300<\/td>\n<\/tr>\n<tr>\n<td>\uc785\uc99d<\/td>\n<td>\ud655\ub300<\/td>\n<td>\ub0b4\uc7a5<\/td>\n<td>\ud655\ub300<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\ud45c\uc5d0\uc11c \uc54c \uc218 \uc788\ub4ef\uc774 Flask\uc758 &#039;\ub9c8\uc774\ud06c\ub85c&#039; \ud2b9\uc131\uc740 \uc644\uc804\ud55c \ud504\ub808\uc784\uc6cc\ud06c\uc778 Django\uc5d0 \ube44\ud574 \uae30\ubcf8\uc801\uc73c\ub85c \uc81c\uacf5\ub418\ub294 \uae30\ub2a5\uc774 \ub354 \uc801\ub2e4\ub294 \uac83\uc744 \uc758\ubbf8\ud569\ub2c8\ub2e4. \uadf8\ub7ec\ub098 \uc694\uad6c \uc0ac\ud56d\uc5d0 \ub530\ub77c \ub2e4\uc591\ud55c \ud50c\ub7ec\uadf8\uc778\uc744 \uc0ac\uc6a9\ud558\uc5ec \ud655\uc7a5\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<h2>\ud50c\ub77c\uc2a4\ud06c\uc758 \ubbf8\ub798 \uc804\ub9dd<\/h2>\n<p>\ud504\ub808\uc784\uc6cc\ud06c\ub85c\uc11c Flask\ub294 \ub2e8\uc21c\uc131, \uc720\uc5f0\uc131 \ubc0f \ud655\uc7a5\uc131\uc73c\ub85c \uc778\ud574 \uacc4\uc18d\ud574\uc11c \uc778\uae30\uac00 \ub192\uc544\uc9c0\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uc810\uc810 \ub354 \ub9ce\uc740 \uac1c\ubc1c\uc790\uac00 \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4 \uc544\ud0a4\ud14d\ucc98\ub97c \uc218\uc6a9\ud568\uc5d0 \ub530\ub77c Flask\ub294 \ud2b9\ud788 Docker \ubc0f Kubernetes\uc640\uc758 \ud638\ud658\uc131\uc744 \ud1b5\ud574 \uc774\ub7ec\ud55c \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uac1c\ubc1c\uc5d0\uc11c \ud070 \uc5ed\ud560\uc744 \ub2f4\ub2f9\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\ub610\ud55c Python\uc774 \ub370\uc774\ud130 \uacfc\ud559 \ubc0f \uae30\uacc4 \ud559\uc2b5 \ubd84\uc57c\uc5d0\uc11c \uc778\uae30\uac00 \uacc4\uc18d \ub192\uc544\uc9c0\uba74\uc11c Flask\ub294 \uae30\uacc4 \ud559\uc2b5 \ubaa8\ub378\uc6a9 API\ub97c \uc0dd\uc131\ud558\ub294 \uac04\ub2e8\ud558\uace0 \ud6a8\uc728\uc801\uc778 \ubc29\ubc95\uc744 \uc81c\uacf5\ud558\ubbc0\ub85c \uac00\uae4c\uc6b4 \ubbf8\ub798\uc5d0 \uc801\ud569\ud55c \uc120\ud0dd\uc774 \ub420 \uac83\uc785\ub2c8\ub2e4.<\/p>\n<h2>\ud504\ub85d\uc2dc \uc11c\ubc84 \ubc0f \ud50c\ub77c\uc2a4\ud06c<\/h2>\n<p>\ud504\ub85d\uc2dc \uc11c\ubc84\ub294 Flask \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0\uc11c \uc911\uc694\ud55c \uc5ed\ud560\uc744 \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, \ud2b9\uc815 \uc9c0\ub9ac\uc801 \uc704\uce58\ub97c \ud1b5\ud574 Flask \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \ud2b8\ub798\ud53d\uc744 \ub77c\uc6b0\ud305\ud558\ub824\ub294 \uacbd\uc6b0 \ud504\ub85d\uc2dc \uc11c\ubc84\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub294 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc774 \uc138\uacc4 \uac01\uc9c0\uc758 \uc694\uccad\uc5d0 \uc5b4\ub5bb\uac8c \uc751\ub2f5\ud558\ub294\uc9c0 \ud14c\uc2a4\ud2b8\ud558\ub294 \ub370 \uc720\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\ub610\ud55c \ud504\ub85d\uc2dc \uc11c\ubc84\ub294 Flask \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0 \ucd94\uac00 \ubcf4\uc548 \uacc4\uce35\uc744 \ucd94\uac00\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc11c\ubc84\uc758 \uc2e0\uc6d0\uc744 \uc228\uae38 \uc218 \uc788\uc5b4 \uacf5\uaca9\uc790\uac00 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uc9c1\uc811 \ud45c\uc801\uc73c\ub85c \uc0bc\ub294 \uac83\uc774 \ub354 \uc5b4\ub824\uc6cc\uc9d1\ub2c8\ub2e4. \ud504\ub85d\uc2dc \uc11c\ubc84\ub294 \ub85c\ub4dc \ubc38\ub7f0\uc2f1\uc5d0\ub3c4 \ub3c4\uc6c0\uc774 \ub418\uba70 \uc5ec\ub7ec \uc11c\ubc84\uc5d0 \ud2b8\ub798\ud53d\uc744 \ubd84\uc0b0\uc2dc\ucf1c \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uc131\ub2a5\uc744 \ud5a5\uc0c1\uc2dc\ud0ac \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<h2>\uad00\ub828\ub41c \ub9c1\ud06c\ub4e4<\/h2>\n<ol>\n<li><a href=\"https:\/\/flask.palletsprojects.com\/\" target=\"_new\" rel=\"noopener nofollow\">\ud50c\ub77c\uc2a4\ud06c \uacf5\uc2dd \ubb38\uc11c<\/a><\/li>\n<li><a href=\"http:\/\/flask.pocoo.org\/extensions\/\" target=\"_new\" rel=\"noopener nofollow\">\ud50c\ub77c\uc2a4\ud06c \ud655\uc7a5<\/a><\/li>\n<li><a href=\"https:\/\/realpython.com\/tutorials\/flask\/\" target=\"_new\" rel=\"noopener nofollow\">Python \ud29c\ud1a0\ub9ac\uc5bc\uc744 \uc0ac\uc6a9\ud55c Flask \uc6f9 \uac1c\ubc1c<\/a><\/li>\n<li><a href=\"https:\/\/blog.miguelgrinberg.com\/post\/the-flask-mega-tutorial-part-i-hello-world\" target=\"_new\" rel=\"noopener nofollow\">Miguel Grinberg\uc758 Flask \uba54\uac00 \ud29c\ud1a0\ub9ac\uc5bc<\/a><\/li>\n<\/ol>","protected":false},"featured_media":468419,"menu_order":0,"template":"","meta":{"_acf_changed":false,"content-type":"","inline_featured_image":false,"footnotes":""},"class_list":["post-477257","wiki","type-wiki","status-publish","has-post-thumbnail","hentry"],"acf":{"faq_title":"Frequently Asked Questions about <mark>Flask: A Lightweight Framework for Web Development<\/mark>","faq_items":[{"question":"What is Flask?","answer":"<p>Flask is a micro web framework written in Python. It's often described as a \"micro\" framework because it doesn't include certain features commonly found in full-fledged web frameworks, such as form validation or database abstraction. However, Flask provides the basic structures required to build a website and is highly extensible.<\/p>"},{"question":"Who is the creator of Flask?","answer":"<p>Flask was created by Armin Ronacher, an active member of the Pocoo team, a group of international Python enthusiasts.<\/p>"},{"question":"What is Flask used for?","answer":"<p>Flask can be used for various web development tasks ranging from creating simple static websites to building complex, data-driven web applications or APIs.<\/p>"},{"question":"What are the key features of Flask?","answer":"<p>Some key features of Flask include its simplicity, flexibility, fine-grained control, HTTP request handling, URL routing, and Jinja2 template engine.<\/p>"},{"question":"How does Flask work?","answer":"<p>In a typical Flask application, the flow starts with a client sending a request to the server where the Flask application is running. The application then processes the request and returns a response back to the client. Flask uses routing to determine what logic to execute based on the URL of the request.<\/p>"},{"question":"How do proxy servers interact with Flask?","answer":"<p>Proxy servers can add an additional layer of security to your Flask applications. They can hide the identity of your server, making it harder for attackers to target your application directly. Proxy servers can also help in load balancing, improving your application's performance by distributing the traffic among multiple servers.<\/p>"},{"question":"What is the future of Flask?","answer":"<p>Flask, as a framework, is continuing to grow in popularity due to its simplicity, flexibility, and scalability. It is especially relevant in the development of microservices and providing APIs for machine learning models.<\/p>"},{"question":"How does Flask compare to other similar frameworks?","answer":"<p>While Flask comes with fewer features out of the box compared to Django, a full-fledged framework, it is more lightweight and can be extended with various plugins as per the requirements. On the other hand, Express.js, a JavaScript web framework, is more comparable to Flask in terms of flexibility and extensibility.<\/p>"},{"question":"Where can I learn more about Flask?","answer":"<p>You can learn more about Flask from the <a href=\"https:\/\/flask.palletsprojects.com\/\" target=\"_new\">official Flask documentation<\/a> and various tutorials such as <a href=\"https:\/\/realpython.com\/tutorials\/flask\/\" target=\"_new\">Flask Web Development with Python Tutorial<\/a> and <a href=\"https:\/\/blog.miguelgrinberg.com\/post\/the-flask-mega-tutorial-part-i-hello-world\" target=\"_new\">Flask Mega-Tutorial by Miguel Grinberg<\/a>.<\/p>"}]},"_links":{"self":[{"href":"https:\/\/oneproxy.pro\/kr\/wp-json\/wp\/v2\/wiki\/477257","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/oneproxy.pro\/kr\/wp-json\/wp\/v2\/wiki"}],"about":[{"href":"https:\/\/oneproxy.pro\/kr\/wp-json\/wp\/v2\/types\/wiki"}],"version-history":[{"count":0,"href":"https:\/\/oneproxy.pro\/kr\/wp-json\/wp\/v2\/wiki\/477257\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/oneproxy.pro\/kr\/wp-json\/wp\/v2\/media\/468419"}],"wp:attachment":[{"href":"https:\/\/oneproxy.pro\/kr\/wp-json\/wp\/v2\/media?parent=477257"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}