{"id":75,"date":"2024-12-04T04:28:40","date_gmt":"2024-12-04T04:28:40","guid":{"rendered":"http:\/\/211.230.203.47\/wordpress\/?p=75"},"modified":"2024-12-04T04:28:40","modified_gmt":"2024-12-04T04:28:40","slug":"flask-%ec%82%ac%ec%9a%a9%eb%b2%95","status":"publish","type":"post","link":"https:\/\/www.soon7shop.kr\/wordpress\/?p=75","title":{"rendered":"Flask \uc0ac\uc6a9\ubc95"},"content":{"rendered":"<p>Flask\ub294 Python\uc73c\ub85c \uac04\ub2e8\ud558\uace0 \ube60\ub974\uac8c \uc6f9 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \ub9cc\ub4e4 \uc218 \uc788\ub294 \ub9c8\uc774\ud06c\ub85c \uc6f9 \ud504\ub808\uc784\uc6cc\ud06c\uc785\ub2c8\ub2e4. Flask\uc758 \uae30\ubcf8\uc801\uc778 \uc0ac\uc6a9\ubc95\uc744 \ub2e8\uacc4\ubcc4\ub85c \uc124\uba85\ub4dc\ub9ac\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<h3>1. Flask \uae30\ubcf8 \uc124\uc815<\/h3>\n<p>Flask \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uc0dd\uc131\ud558\ub824\uba74 \uba3c\uc800 Flask \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc124\uce58\ud574\uc57c \ud569\ub2c8\ub2e4. \uc124\uce58\uac00 \ub05d\ub098\uba74 \ub2e4\uc74c\uacfc \uac19\uc774 \uac04\ub2e8\ud55c \uc6f9 \uc11c\ubc84\ub97c \uad6c\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<div class=\"contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950\">\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\"><code class=\"!whitespace-pre hljs language-python\"><code class=\"!whitespace-pre hljs language-python\"><\/code><\/code># app.py<br \/>\nfrom flask import Flask<\/p>\n<p><code class=\"!whitespace-pre hljs language-python\"><code class=\"!whitespace-pre hljs language-python\"><\/code><\/code>app = Flask(__name__)<\/p>\n<p><code class=\"!whitespace-pre hljs language-python\"><code class=\"!whitespace-pre hljs language-python\"><\/code><\/code>@app.route(&#8220;\/&#8221;)<br \/>\ndef home():<br \/>\nreturn &#8220;Hello, Flask!&#8221;<\/p>\n<p><code class=\"!whitespace-pre hljs language-python\"><code class=\"!whitespace-pre hljs language-python\"><\/code><\/code>if __name__ == &#8220;__main__&#8221;:<br \/>\napp.run(debug=True)<\/p>\n<p><code class=\"!whitespace-pre hljs language-python\"><br \/>\n<\/code><\/div>\n<\/div>\n<ul>\n<li><code>app = Flask(__name__)<\/code>: Flask \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uac1d\uccb4\ub97c \ub9cc\ub4ed\ub2c8\ub2e4.<\/li>\n<li><code>@app.route(\"\/\")<\/code>: \uacbd\ub85c \uc124\uc815\uc73c\ub85c, <code>\"\/\"<\/code> URL\ub85c \uc811\uc18d \uc2dc <code>home()<\/code> \ud568\uc218\uac00 \uc2e4\ud589\ub429\ub2c8\ub2e4.<\/li>\n<li><code>app.run(debug=True)<\/code>: Flask \uc11c\ubc84\ub97c \uc2dc\uc791\ud569\ub2c8\ub2e4.<\/li>\n<\/ul>\n<h3>2. \ub77c\uc6b0\ud305<\/h3>\n<p>Flask\uc5d0\uc11c URL\uc744 \uad00\ub9ac\ud558\ub824\uba74 \ub77c\uc6b0\ud305\uc744 \uc124\uc815\ud569\ub2c8\ub2e4. \ub2e4\uc591\ud55c \uacbd\ub85c\ub97c <code>@app.route()<\/code> \ub370\ucf54\ub808\uc774\ud130\ub85c \uc124\uc815\ud560 \uc218 \uc788\uc73c\uba70, \ub3d9\uc801 URL\ub3c4 \uc124\uc815\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<div class=\"contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950\">\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\"><code class=\"!whitespace-pre hljs language-python\"><code class=\"!whitespace-pre hljs language-python\"><\/code><\/code>@app.route(&#8220;\/hello&#8221;)<br \/>\ndef hello():<br \/>\nreturn &#8220;Hello, World!&#8221;<\/p>\n<p><code class=\"!whitespace-pre hljs language-python\"><code class=\"!whitespace-pre hljs language-python\"><\/code><\/code>@app.route(&#8220;\/user\/&lt;username&gt;&#8221;)<br \/>\ndef user_profile(username):<br \/>\nreturn f&#8221;User: {username}&#8221;<\/p>\n<p><code class=\"!whitespace-pre hljs language-python\"><br \/>\n<\/code><\/div>\n<\/div>\n<ul>\n<li><code>\/hello<\/code> \uacbd\ub85c\uc5d0 \uc811\uc18d \uc2dc &#8220;Hello, World!&#8221;\ub97c \ubc18\ud658\ud569\ub2c8\ub2e4.<\/li>\n<li><code>\/user\/&lt;username&gt;<\/code> \uacbd\ub85c\ub294 <code>username<\/code>\uc744 \ub9e4\uac1c\ubcc0\uc218\ub85c \ubc1b\uc544 \ub3d9\uc801\uc73c\ub85c \uc0ac\uc6a9\uc790 \ud398\uc774\uc9c0\ub97c \ud45c\uc2dc\ud569\ub2c8\ub2e4.<\/li>\n<\/ul>\n<h3>3. \ud15c\ud50c\ub9bf \uc0ac\uc6a9<\/h3>\n<p>HTML\uc744 \uc9c1\uc811 \ubc18\ud658\ud558\ub294 \ub300\uc2e0 <strong>Jinja2<\/strong> \ud15c\ud50c\ub9bf\uc744 \uc0ac\uc6a9\ud558\uc5ec HTML \ud30c\uc77c\uc744 \ub80c\ub354\ub9c1\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ud15c\ud50c\ub9bf \ud30c\uc77c\uc740 \ud504\ub85c\uc81d\ud2b8\uc758 <code>templates<\/code> \ud3f4\ub354\uc5d0 \uc704\uce58\uc2dc\ud0b5\ub2c8\ub2e4.<\/p>\n<p><strong>\ud504\ub85c\uc81d\ud2b8 \uad6c\uc870<\/strong><\/p>\n<div class=\"contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950\">\n<div class=\"flex items-center text-token-text-secondary px-4 py-2 text-xs font-sans justify-between rounded-t-md h-9 bg-token-sidebar-surface-primary dark:bg-token-main-surface-secondary select-none\">my_flask_app\/<br \/>\n\u251c\u2500\u2500 app.py<br \/>\n\u2514\u2500\u2500 templates\/<br \/>\n\u2514\u2500\u2500 index.html<\/div>\n<div><\/div>\n<\/div>\n<p><strong>\ud15c\ud50c\ub9bf \ud30c\uc77c (templates\/index.html)<\/strong><\/p>\n<div class=\"contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950\">\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\"><code class=\"!whitespace-pre hljs language-html\">&lt;!DOCTYPE html&gt;<br \/>\n&lt;html lang=\"en\"&gt;<br \/>\n&lt;head&gt;<br \/>\n&lt;meta charset=\"UTF-8\"&gt;<br \/>\n&lt;title&gt;Flask App&lt;\/title&gt;<br \/>\n&lt;\/head&gt;<br \/>\n&lt;body&gt;<br \/>\n&lt;h1&gt;Welcome, {{ name }}!&lt;\/h1&gt;<br \/>\n&lt;\/body&gt;<br \/>\n&lt;\/html&gt;<br \/>\n<\/code><\/div>\n<div dir=\"ltr\"><\/div>\n<\/div>\n<p><strong>Flask\uc5d0\uc11c \ud15c\ud50c\ub9bf \ub80c\ub354\ub9c1<\/strong><\/p>\n<div class=\"contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950\">\n<div class=\"flex items-center text-token-text-secondary px-4 py-2 text-xs font-sans justify-between rounded-t-md h-9 bg-token-sidebar-surface-primary dark:bg-token-main-surface-secondary select-none\">\n<p>from flask import render_template<\/p>\n<p>@app.route(&#8220;\/welcome\/&lt;name&gt;&#8221;)<br \/>\ndef welcome(name):<br \/>\nreturn render_template(&#8220;index.html&#8221;, name=name)<\/p>\n<\/div>\n<\/div>\n<ul>\n<li><code>render_template()<\/code> \ud568\uc218\ub294 <code>templates\/<\/code> \ud3f4\ub354\uc5d0\uc11c \uc9c0\uc815\ud55c \ud15c\ud50c\ub9bf \ud30c\uc77c\uc744 \ub80c\ub354\ub9c1\ud569\ub2c8\ub2e4.<\/li>\n<li>\ud15c\ud50c\ub9bf \ud30c\uc77c\uc5d0\uc11c <code>{{ name }}<\/code>\uc744 \uc0ac\uc6a9\ud574 Python \ub370\uc774\ud130\ub97c HTML\ub85c \uc804\ub2ec\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n<\/ul>\n<h3>4. HTTP \uba54\uc11c\ub4dc \ucc98\ub9ac<\/h3>\n<p>Flask\uc5d0\uc11c\ub294 GET, POST\uc640 \uac19\uc740 HTTP \uba54\uc11c\ub4dc\uc5d0 \ub530\ub77c \ub2e4\ub978 \ucc98\ub9ac\ub97c \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. POST \uba54\uc11c\ub4dc\ub97c \uc0ac\uc6a9\ud558\uc5ec \ub370\uc774\ud130\ub97c \uc81c\ucd9c\ud558\uac70\ub098 \uc694\uccad\uc744 \ucc98\ub9ac\ud558\ub294 \uae30\ub2a5\uc744 \ub9cc\ub4e4\uc5b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<div class=\"contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950\">\n<div class=\"flex items-center text-token-text-secondary px-4 py-2 text-xs font-sans justify-between rounded-t-md h-9 bg-token-sidebar-surface-primary dark:bg-token-main-surface-secondary select-none\">\n<p>from flask import request<\/p>\n<p>@app.route(&#8220;\/submit&#8221;, methods=[&#8220;GET&#8221;, &#8220;POST&#8221;])<br \/>\ndef submit():<br \/>\nif request.method == &#8220;POST&#8221;:<br \/>\nusername = request.form[&#8220;username&#8221;]\nreturn f&#8221;Hello, {username}!&#8221;<br \/>\nreturn &#8221;&#8217;<br \/>\n&lt;form method=&#8221;post&#8221;&gt;<br \/>\nUsername: &lt;input type=&#8221;text&#8221; name=&#8221;username&#8221;&gt;<br \/>\n&lt;input type=&#8221;submit&#8221; value=&#8221;Submit&#8221;&gt;<br \/>\n&lt;\/form&gt;<br \/>\n&#8221;&#8217;<\/p>\n<\/div>\n<\/div>\n<ul>\n<li><code>request<\/code> \uac1d\uccb4\ub97c \uc0ac\uc6a9\ud558\uc5ec GET \ub610\ub294 POST \uc694\uccad\uc5d0\uc11c \ub370\uc774\ud130\ub97c \uac00\uc838\uc635\ub2c8\ub2e4.<\/li>\n<li><code>request.form<\/code>\uc740 HTML \ud3fc \ub370\uc774\ud130\uc5d0 \uc811\uadfc\ud569\ub2c8\ub2e4.<\/li>\n<\/ul>\n<h3>5. \ub9ac\ub2e4\uc774\ub809\ud2b8\uc640 URL \uc0dd\uc131<\/h3>\n<p>\uc0ac\uc6a9\uc790\ub97c \ub2e4\ub978 \ud398\uc774\uc9c0\ub85c \ub9ac\ub2e4\uc774\ub809\ud2b8\ud558\uac70\ub098, URL\uc744 \uc0dd\uc131\ud560 \ub54c <code>redirect()<\/code>\uc640 <code>url_for()<\/code> \ud568\uc218\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<div class=\"contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950\">\n<div class=\"flex items-center text-token-text-secondary px-4 py-2 text-xs font-sans justify-between rounded-t-md h-9 bg-token-sidebar-surface-primary dark:bg-token-main-surface-secondary select-none\">\n<p>from flask import redirect, url_for<\/p>\n<p>@app.route(&#8220;\/&#8221;)<br \/>\ndef index():<br \/>\nreturn redirect(url_for(&#8220;hello&#8221;))<\/p>\n<p>@app.route(&#8220;\/hello&#8221;)<br \/>\ndef hello():<br \/>\nreturn &#8220;Hello, redirected!&#8221;<\/p>\n<\/div>\n<\/div>\n<ul>\n<li><code>url_for(\"\ud568\uc218\uba85\")<\/code>\uc744 \uc0ac\uc6a9\ud558\uc5ec \ud574\ub2f9 \ud568\uc218\ub85c \uc5f0\uacb0\ub41c URL\uc744 \uc0dd\uc131\ud558\uace0 <code>redirect()<\/code>\ub85c \ud574\ub2f9 \uacbd\ub85c\ub85c \ub9ac\ub2e4\uc774\ub809\ud2b8\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n<\/ul>\n<h3>6. \ud50c\ub77c\uc2a4\ud06c\uc5d0\uc11c \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc5f0\ub3d9<\/h3>\n<p>Flask\ub294 \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc5f0\ub3d9 \uc2dc <strong>Flask-SQLAlchemy<\/strong>\ub97c \uc8fc\ub85c \uc0ac\uc6a9\ud569\ub2c8\ub2e4. SQLAlchemy\ub294 Python\uc758 ORM \ub77c\uc774\ube0c\ub7ec\ub9ac\ub85c, \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc640 \uc27d\uac8c \uc5f0\ub3d9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<div class=\"contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950\">\n<div class=\"flex items-center text-token-text-secondary px-4 py-2 text-xs font-sans justify-between rounded-t-md h-9 bg-token-sidebar-surface-primary dark:bg-token-main-surface-secondary select-none\">bash<\/div>\n<div class=\"sticky top-9 md:top-[5.75rem]\">\n<div class=\"absolute bottom-0 right-2 flex h-9 items-center\">\n<div class=\"flex items-center rounded bg-token-sidebar-surface-primary px-2 font-sans text-xs text-token-text-secondary dark:bg-token-main-surface-secondary\"><span class=\"\" data-state=\"closed\"><button class=\"flex gap-1 items-center select-none py-1\">\ucf54\ub4dc \ubcf5\uc0ac<\/button><\/span><\/div>\n<\/div>\n<\/div>\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\"><code class=\"!whitespace-pre hljs language-bash\">pip install Flask-SQLAlchemy<\/code><\/div>\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\"><code class=\"!whitespace-pre hljs language-bash\"><\/code><\/div>\n<\/div>\n<p><strong>app.py<\/strong><\/p>\n<div class=\"contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950\">\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\"><code class=\"!whitespace-pre hljs language-python\"><code class=\"!whitespace-pre hljs language-python\"><\/code><\/code>from flask import Flask<br \/>\nfrom flask_sqlalchemy import SQLAlchemy<\/p>\n<p><code class=\"!whitespace-pre hljs language-python\"><code class=\"!whitespace-pre hljs language-python\"><\/code><\/code>app = Flask(__name__)<br \/>\napp.config[&#8220;SQLALCHEMY_DATABASE_URI&#8221;] = &#8220;sqlite:\/\/\/test.db&#8221; # \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uacbd\ub85c \uc124\uc815<br \/>\ndb = SQLAlchemy(app)<\/p>\n<p><code class=\"!whitespace-pre hljs language-python\"><code class=\"!whitespace-pre hljs language-python\"><\/code><\/code># \ub370\uc774\ud130\ubca0\uc774\uc2a4 \ubaa8\ub378 \uc815\uc758<br \/>\nclass User(db.Model):<br \/>\nid = db.Column(db.Integer, primary_key=True)<br \/>\nname = db.Column(db.String(80), nullable=False)<\/p>\n<p><code class=\"!whitespace-pre hljs language-python\"><code class=\"!whitespace-pre hljs language-python\"><\/code><\/code>@app.route(&#8220;\/add_user\/&lt;name&gt;&#8221;)<br \/>\ndef add_user(name):<br \/>\nnew_user = User(name=name)<br \/>\ndb.session.add(new_user)<br \/>\ndb.session.commit()<br \/>\nreturn f&#8221;User {name} added.&#8221;<\/p>\n<p><code class=\"!whitespace-pre hljs language-python\"><code class=\"!whitespace-pre hljs language-python\"><\/code><\/code>if __name__ == &#8220;__main__&#8221;:<br \/>\ndb.create_all() # \ud14c\uc774\ube14 \uc0dd\uc131<br \/>\napp.run(debug=True)<\/p>\n<p><code class=\"!whitespace-pre hljs language-python\"><br \/>\n<\/code><\/div>\n<\/div>\n<ul>\n<li><code>db.create_all()<\/code>\uc744 \ud1b5\ud574 \ubaa8\ub378\uc5d0 \uae30\ubc18\ud55c \ub370\uc774\ud130\ubca0\uc774\uc2a4 \ud14c\uc774\ube14\uc744 \uc0dd\uc131\ud569\ub2c8\ub2e4.<\/li>\n<li>SQLAlchemy\ub97c \uc0ac\uc6a9\ud558\uc5ec \ub370\uc774\ud130\ub97c \uc0bd\uc785, \uc870\ud68c, \uc5c5\ub370\uc774\ud2b8, \uc0ad\uc81c\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n<\/ul>\n<h3>7. Flask \uc2e4\ud589<\/h3>\n<p>Flask \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uc2e4\ud589\ud558\ub824\uba74 \ub2e4\uc74c\uacfc \uac19\uc774 \uc2e4\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<div class=\"contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950\">\n<div class=\"flex items-center text-token-text-secondary px-4 py-2 text-xs font-sans justify-between rounded-t-md h-9 bg-token-sidebar-surface-primary dark:bg-token-main-surface-secondary select-none\">bash<\/div>\n<div class=\"sticky top-9 md:top-[5.75rem]\">\n<div class=\"absolute bottom-0 right-2 flex h-9 items-center\">\n<div class=\"flex items-center rounded bg-token-sidebar-surface-primary px-2 font-sans text-xs text-token-text-secondary dark:bg-token-main-surface-secondary\"><\/div>\n<\/div>\n<\/div>\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\"><code class=\"!whitespace-pre hljs language-bash\"><span class=\"hljs-built_in\">export<\/span> FLASK_APP=app.py<br \/>\nflask run<br \/>\n<\/code><\/div>\n<\/div>\n<p>\ub610\ub294 Python\uc73c\ub85c \uc9c1\uc811 \uc2e4\ud589\ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<div class=\"contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950\">\n<div class=\"sticky top-9 md:top-[5.75rem]\">\n<div class=\"absolute bottom-0 right-2 flex h-9 items-center\">\n<div class=\"flex items-center rounded bg-token-sidebar-surface-primary px-2 font-sans text-xs text-token-text-secondary dark:bg-token-main-surface-secondary\"><\/div>\n<\/div>\n<\/div>\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\"><code class=\"!whitespace-pre hljs language-bash\">python app.py<br \/>\n<\/code><\/div>\n<\/div>\n<h3>\uc694\uc57d<\/h3>\n<p>Flask\ub97c \uc0ac\uc6a9\ud558\uc5ec \uae30\ubcf8\uc801\uc778 \uc6f9 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uad6c\ucd95\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ud575\uc2ec \uac1c\ub150\uc73c\ub85c\ub294 <strong>\ub77c\uc6b0\ud305<\/strong>, <strong>\ud15c\ud50c\ub9bf \ub80c\ub354\ub9c1<\/strong>, <strong>HTTP \uc694\uccad \ucc98\ub9ac<\/strong>, <strong>\ub9ac\ub2e4\uc774\ub809\ud2b8\uc640 URL \uc0dd\uc131<\/strong> \ub4f1\uc774 \uc788\uc73c\uba70, SQLAlchemy\uc640 \uac19\uc740 ORM\uc744 \ud65c\uc6a9\ud558\uc5ec \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc5f0\ub3d9\ub3c4 \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. Flask\ub294 \ud544\uc694\uc5d0 \ub530\ub77c \ud655\uc7a5\uc131\uc744 \ub192\uc77c \uc218 \uc788\uc5b4, \uc18c\uaddc\ubaa8 \ud504\ub85c\uc81d\ud2b8\uc5d0\uc11c \ub300\uaddc\ubaa8 \ud504\ub85c\uc81d\ud2b8\ub85c \ud655\uc7a5\ud560 \ub54c\ub3c4 \ub9e4\uc6b0 \uc720\uc6a9\ud55c \ud504\ub808\uc784\uc6cc\ud06c\uc785\ub2c8\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Flask\ub294 Python\uc73c\ub85c \uac04\ub2e8\ud558\uace0 \ube60\ub974\uac8c \uc6f9 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \ub9cc\ub4e4 \uc218 \uc788\ub294 \ub9c8\uc774\ud06c\ub85c \uc6f9 \ud504\ub808\uc784\uc6cc\ud06c\uc785\ub2c8\ub2e4. Flask\uc758 \uae30\ubcf8\uc801\uc778 \uc0ac\uc6a9\ubc95\uc744 \ub2e8\uacc4\ubcc4\ub85c \uc124\uba85\ub4dc\ub9ac\uaca0\uc2b5\ub2c8\ub2e4. 1. Flask \uae30\ubcf8 \uc124\uc815 Flask \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uc0dd\uc131\ud558\ub824\uba74 \uba3c\uc800 Flask \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc124\uce58\ud574\uc57c \ud569\ub2c8\ub2e4. \uc124\uce58\uac00 \ub05d\ub098\uba74 \ub2e4\uc74c\uacfc \uac19\uc774 \uac04\ub2e8\ud55c \uc6f9 \uc11c\ubc84\ub97c \uad6c\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. # app.py from flask import Flask app = Flask(__name__) @app.route(&#8220;\/&#8221;) def home(): return &#8220;Hello, Flask!&#8221; if &hellip; <a href=\"https:\/\/www.soon7shop.kr\/wordpress\/?p=75\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;Flask \uc0ac\uc6a9\ubc95&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-75","post","type-post","status-publish","format-standard","hentry","category-6"],"_links":{"self":[{"href":"https:\/\/www.soon7shop.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/75","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.soon7shop.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.soon7shop.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.soon7shop.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.soon7shop.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=75"}],"version-history":[{"count":1,"href":"https:\/\/www.soon7shop.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/75\/revisions"}],"predecessor-version":[{"id":76,"href":"https:\/\/www.soon7shop.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/75\/revisions\/76"}],"wp:attachment":[{"href":"https:\/\/www.soon7shop.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=75"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.soon7shop.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=75"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.soon7shop.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=75"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}