๐ณ Pynecone ์์ํ๊ธฐ (Python์ผ๋ก ์น์ฑ ๋ง๋ค๊ธฐ)
Pynecone์ด๋? (๊ทธ๋๋ React ์ข ๋ง์…)
ํน์ง (๊ณต์ ์ฌ์ดํธ https://pynecone.io/ ์์ ๋งํ๋โฆ)
- Pure Python ์๋ก์ด ์ธ์ด ๋ฐฐ์ธ ํ์ ์์ด์ ํ์ด์ฌ์ด๋ ํด๋น ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ ์ค๋ง ์๋ฉด ๋ผ์
- Easy to Learn
- Full Flexibility ํ์ฅ์ฑ ์ข์์
- Batteries Included Pynecone ํ๋๋ก ํ๋ก ํธ์๋, ๋ฐฑ์๋, ๋ฐฐํฌ ๋ค ํ ์ ์์ด์
- Pynecone : Pure Python์ผ๋ก interactive web app์ ๋ง๋ค ์ ์์ (JavaScript, React, NextJS ๋ชฐ๋ผ๋ ๋จ)
- Styling์ ์ํด Chakra UI๋ฅผ ์ฌ์ฉํจ
- NextJS app๊ณผ FastAPI ์๋ฒ ๊ฐ์ ๋ชจ๋ ํต์ ์ฒ๋ฆฌ ๊ฐ๋ฅ
- AI์ ๊ฐ์ด ํ์ด์ฌ ํจํค์ง๋ฅผ ๋ง์ด ์ฌ์ฉํ๋ ๊ฒฝ์ฐ, FastAPI ๋ฐฑ์๋ ์ฌ์ฉํ๋ ์ข์ ๋ฏ
- ๋ ธ๋ง๋ ์ฝ๋์, ReactJS๊ฐ ์๋ Flutter์ฒ๋ผ ๋๊ปด์ ธ์ ์ข์
- ๊ทธ๋๋ ๊ทธ๋ฅ JS, React, NextJS ๋ฐฐ์ฐ์
Letโs Started with Pynecone!
1. Pynecone Installiation
- Python 3.7๋ฒ์ ์ด์
- NodeJS 12.22.0 ๋ฒ์ ์ด์

pip๋ฅผ ํตํด ์ค์น
pip install pynecone-io2. Create a Project
๋ชจ๋ Pynecone function, class๋ pc. ์ ๋์ฌ๋ก ์์!
pc init : Initialize a template app in new directory


์์ ๊ฐ์ด ๊ธฐ๋ณธ ํ ํ๋ฆฟ์ ์์ฑํด์ค
directory structure
MY_FIRST_PYNECONE_APP
โโโ .web
โโโ assets
โโโ my_first_pynecone_app
โ โโโ __init__.py
โ โโโ my_first_pynecone_app.py
โโโ pcconfig.py.webNextJS ์ฑ์ผ๋ก ์ปดํ์ผ ๋ค์ด๋์ด์.web๋๋ ํ ๋ฆฌ์ ์ ์ฅ๋จ ํด๋น ๋๋ ํ ๋ฆฌ ์ ๋ ํ์ ์์ง๋ง, ๋๋ฒ๊น ์ ์ ์ฉํจ ๊ฐ๊ฐ์ Pynecone ํ์ด์ง๋ .js ํ์ผ๋ก ์ปดํ์ผ๋์ด์.web/pages๋๋ ํฐ๋ก๋ฆฌ์ ์ ์ฅ๋จassetsfavicon , ํฐํธ, ์ด๋ฏธ์ง ๋ฑ๊ณผ ๊ฐ์ asset๋ค์ ์ ์ฅํ๋ ๋๋ ํ ๋ฆฌassets/image.png๋ก image๋ฅผ ํด๋น ๋๋ ํ ๋ฆฌ์ ์ ์ฅํ๋ฉด, ์๋์ ๊ฐ์ด ํด๋น ์ด๋ฏธ์ง๋ฅผ ๋์คํ๋ ์ดํ ์ ์์.pc.image(src="image.png")Main Project :
{my_first_pynecone_app}/{my_first_pynecone_app.py}pc init ํ๋ฉด, ํด๋น ๋๋ ํ ๋ฆฌ ์ด๋ฆ๊ณผ ๊ฐ์ ์ด๋ฆ์ app (๋๋ ํ ๋ฆฌ์ด๋ฆ.py) ๋ฅผ ์์ฑํด์ค.Configuration :
**pcconfig.py** app์ ๊ดํ configuration ๊ดํ ํ์ผ์. ์๋์ ๊ฐ์ด default๋ก ์์ฑ๋จimport pynecone as pc config = pc.Config( app_name="my_first_pynecone_app", db_url="sqlite:///pynecone.db", env=pc.Env.DEV, )
3. Run the app
pc run

4. The Structure of a Pynecone App
my_first__pynecone_app.py
"""Welcome to Pynecone! This file outlines the steps to create a basic app."""
from pcconfig import config
import pynecone as pc
docs_url = "https://pynecone.io/docs/getting-started/introduction"
filename = f"{config.app_name}/{config.app_name}.py"
# State๋ ๋ชจ๋ variable๋ค (**vars**)์ ์ ์
class State(pc.State):
"""The app state."""
pass
# Frontend
def index():
return pc.center(
pc.vstack(
**pc.heading**("Welcome to Pynecone!", font_size="2em"),
**pc.box**("Get started by editing ", pc.code(filename, font_size="1em")),
**pc.link**(
"Check out our docs!",
href=docs_url,
border="0.1em solid",
padding="0.5em",
border_radius="0.5em",
_hover={
"color": "rgb(107,99,246)",
},
),
spacing="1.5em",
font_size="2em",
),
padding_top="10%",
)
# Routing
# Add state and page to the app.
app = pc.App(state=State)
app.add_page(index)
# Compiling
app.compile()pc.heading(), pc.box() pc.link() ๊ณผ ๊ฐ์ 50๊ฐ ์ด์์ built-in components ์์
ํ๋ก ํธ์๋, ๋ฐฑ์๋ ๋ชจ๋ ํด๊ฒฐํจ.
My first pynecone app
