You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

25 KiB

🗄 (🔗) 💽

FastAPI 🚫 🚚 👆 ⚙️ 🗄 (🔗) 💽.

👆 💪 ⚙️ 🙆 🔗 💽 👈 👆 💚.

📥 👥 🔜 👀 🖼 ⚙️ 🇸🇲.

👆 💪 💪 🛠️ 🙆 💽 🐕‍🦺 🇸🇲, 💖:

  • 🗄
  • 🐸
  • 🤸‍♂ 🗄 💽, ️.

👉 🖼, 👥 🔜 ⚙️ 🗄, ↩️ ⚙️ 👁 📁 & 🐍 ✔️ 🛠️ 🐕‍🦺. , 👆 💪 📁 👉 🖼 & 🏃 ️.

, 👆 🏭 🈸, 👆 💪 💚 ⚙️ 💽 💽 💖 .

/// tip

📤 🛂 🏗 🚂 ⏮️ FastAPI & , 🌐 🔛 , 🔌 🕸 & 🌖 🧰: https://github.com/tiangolo/full-stack-fastapi-postgresql

///

/// note

👀 👈 📚 📟 🐩 SQLAlchemy 📟 👆 🔜 ⚙️ ⏮️ 🙆 🛠️.

FastAPI 🎯 📟 🤪 🕧.

///

🐜

FastAPI 👷 ⏮️ 🙆 💽 & 🙆 👗 🗃 💬 💽.

⚙️ "🐜": "🎚-🔗 🗺" 🗃.

🐜 ✔️ 🧰 🗜 ("🗺") 🖖 🎚 📟 & 💽 🏓 ("🔗").

⏮️ 🐜, 👆 🛎 ✍ 🎓 👈 🎨 🏓 🗄 💽, 🔠 🔢 🎓 🎨 🏓, ⏮️ 📛 & 🆎.

🖼 🎓 Pet 💪 🎨 🗄 🏓 pets.

& 🔠 👐 🎚 👈 🎓 🎨💽.

🖼 🎚 orion_cat (👐 Pet) 💪 ✔️ 🔢 orion_cat.type, 🏓 type. & 💲 👈 🔢 💪, "cat".

👫 🐜 ✔️ 🧰🔗 ⚖️ 🔗 🖖 🏓 ⚖️ 👨‍💼.

👉 🌌, 👆 💪 ✔️ 🔢 orion_cat.owner & 👨‍💼 🔜 🔌 💽 👉 🐶 👨‍💼, ➡️ 🏓 👨‍💼.

, orion_cat.owner.name 💪 📛 (➡️ name 🏓 owners 🏓) 👉 🐶 👨‍💼.

💪 ✔️ 💲 💖 "Arquilian".

& 🐜 🔜 🌐 👷 🤚➡️ 🔗 🏓 👨‍💼 🕐 👆 🔄 🔐 ➡️ 👆 🐶 🎚.

🐜 🖼: ✳-🐜 (🍕🛠️), 🇸🇲 🐜 (🍕 🇸🇲, 🔬 🛠️) & 🏒 (🔬 🛠️), 👪 🎏.

📥 👥 🔜 👀 👷 ⏮️ 🇸🇲 🐜.

🎏 🌌 👆 💪 ⚙️ 🙆 🎏 🐜.

/// tip

📤 🌓 📄 ⚙️ 🏒 📥 🩺.

///

📁 📊

👫 🖼, ➡️ 💬 👆 ✔️ 📁 📛 my_super_project 👈 🔌 🎧-📁 🤙 sql_app ⏮️ 📊 💖 👉:

.
└── sql_app
    ├── __init__.py
    ├── crud.py
    ├── database.py
    ├── main.py
    ├── models.py
    └── schemas.py

📁 __init__.py 🛁 📁, 💬 🐍 👈 sql_app ⏮️ 🌐 🚮 🕹 (🐍 📁) 📦.

🔜 ➡️ 👀 🔠 📁/🕹 🔨.

SQLAlchemy

🥇 👆 💪 SQLAlchemy:

$ pip install sqlalchemy

---> 100%

🇸🇲 🍕

➡️ 🔗 📁 sql_app/database.py.

🗄 🇸🇲 🍕

{!../../../docs_src/sql_databases/sql_app/database.py!}

💽 📛 🇸🇲

{!../../../docs_src/sql_databases/sql_app/database.py!}

👉 🖼, 👥 "🔗" 🗄 💽 (📂 📁 ⏮️ 🗄 💽).

📁 🔜 🔎 🎏 📁 📁 sql_app.db.

👈 🏁 🍕 ./sql_app.db.

🚥 👆 ⚙️ 💽 ↩️, 👆 🔜 ✔️ ✍ ⏸:

SQLALCHEMY_DATABASE_URL = "postgresql://user:password@postgresserver/db"

...& 🛠️ ⏮️ 👆 💽 📊 & 🎓 (📊 ✳, ✳ ⚖️ 🙆 🎏).

/// tip

👉 👑👈 👆 🔜 ✔️ 🔀 🚥 👆 💚 ⚙️ 🎏 💽.

///

🇸🇲 engine

🥇 🔁🇸🇲 "🚒".

👥 🔜 ⚙️ 👉 engine 🎏 🥉.

{!../../../docs_src/sql_databases/sql_app/database.py!}

🗒

:

connect_args={"check_same_thread": False}

...💪 🕴 SQLite. 🚫 💪 🎏 💽.

/// info | "📡 ℹ"

🔢 🗄 🔜 🕴 ✔ 1️⃣ 🧵 🔗 ⏮️ ️, 🤔 👈 🔠 🧵 🔜 🍵 🔬 📨.

👉 😫 🤝 🎏 🔗 🎏 👜 (🎏 📨).

️ FastAPI, ⚙️ 😐 🔢 (def) 🌅 🌘 1️⃣ 🧵 💪 🔗 ⏮️ 💽 🎏 📨, 👥 💪 ⚒ 🗄 💭 👈 🔜👈 ⏮️ connect_args={"check_same_thread": False}.

, 👥 🔜💭 🔠 📨 🤚 🚮 👍 💽 🔗 🎉 🔗, 📤 🙅‍♂ 💪 👈 🔢 🛠️.

///

SessionLocal 🎓

🔠 👐 SessionLocal 🎓 🔜 💽 🎉. 🎓 🚫 💽 🎉.

🕐 👥👐 SessionLocal 🎓, 👉 👐 🔜💽 🎉.

👥 📛 SessionLocal 🔬 ➡️ Session 👥 🏭 ➡️ 🇸🇲.

👥 🔜 ⚙️ Session (1️⃣ 🗄 ➡️ 🇸🇲) .

SessionLocal 🎓, ⚙️ 🔢 sessionmaker:

{!../../../docs_src/sql_databases/sql_app/database.py!}

Base 🎓

🔜 👥 🔜 ⚙️ 🔢 declarative_base() 👈 📨 🎓.

👥 🔜 😖 ➡️ 👉 🎓🔠 💽 🏷 ⚖️ 🎓 (🐜 🏷):

{!../../../docs_src/sql_databases/sql_app/database.py!}

💽 🏷

➡️ 🔜 👀 📁 sql_app/models.py.

🇸🇲 🏷 ➡️ Base 🎓

👥 🔜 ⚙️ 👉 Base 🎓 👥 ✍ ⏭ ✍ 🇸🇲 🏷.

/// tip

🇸🇲 ⚙️ ⚖ "🏷" 🔗 👉 🎓 & 👐 👈 🔗 ⏮️ 💽.

️ Pydantic ⚙️ ⚖ "🏷" 🔗 🕳 🎏, 💽 🔬, 🛠️, & 🧾 🎓 & 👐.

///

🗄 Base ➡️ database (📁 database.py ➡️ 🔛).

🎓 👈 😖 ➡️ ️.

👫 🎓 🇸🇲 🏷.

{!../../../docs_src/sql_databases/sql_app/models.py!}

__tablename__ 🔢 💬 🇸🇲 📛 🏓 ⚙️ 💽 🔠 👫 🏷.

✍ 🏷 🔢/🏓

🔜🌐 🏷 (🎓) 🔢.

🔠 👫 🔢 🎨 🏓 🚮 🔗 💽 🏓.

👥 ⚙️ Column ➡️ 🇸🇲 🔢 💲.

& 👥 🚶‍♀️ 🇸🇲 🎓 "🆎", Integer, String, & Boolean, 👈 🔬 🆎 💽, .

{!../../../docs_src/sql_databases/sql_app/models.py!}

💛

🔜💛.

👉, 👥 ⚙️ relationship 🚚 🇸🇲 🐜.

👉 🔜 ▶️️, 🌅 ⚖️ 🌘, "🎱" 🔢 👈 🔜 🔌 💲 ➡️ 🎏 🏓 🔗 👉 1️⃣.

{!../../../docs_src/sql_databases/sql_app/models.py!}

🕐 🔐 🔢 items User, my_user.items, 🔜 ✔️ 📇 Item 🇸🇲 🏷 (➡️ items 🏓) 👈 ✔️ 💱 🔑👉users 🏓.

🕐 👆 🔐 my_user.items, 🇸🇲 🔜 🤙 🚶 & 🏬 ➡️ 💽 items 🏓 & 🔗 👫 📥.

& 🕐 🔐 🔢 owner Item, 🔜 🔌 User 🇸🇲 🏷 ➡️ users 🏓. 🔜 ⚙️ owner_id 🔢/🏓 ⏮️ 🚮 💱 🔑 💭 🤚 ➡️ users 🏓.

✍ Pydantic 🏷

🔜 ➡️ 📁 sql_app/schemas.py.

/// tip

😨 🖖 🇸🇲 🏷 & Pydantic 🏷, 👥 🔜 ✔️ 📁 models.py ⏮️ 🇸🇲 🏷, & 📁 schemas.py ⏮️ Pydantic 🏷.

👫 Pydantic 🏷 🔬 🌅 ⚖️ 🌘 "🔗" (☑ 📊 💠).

👉 🔜👥 😨 ⚙️ 👯‍♂️.

///

▶️ Pydantic 🏷 / 🔗

ItemBase & UserBase Pydantic 🏷 (⚖️ ➡️ 💬 "🔗") ✔️🔢 🏗 ⚖️ 👂 📊.

& ✍ ItemCreate & UserCreate 👈 😖 ➡️ 👫 (👫 🔜 ✔️ 🎏 🔢), 🙆 🌖 📊 (🔢) 💪 🏗.

, 👩‍💻 🔜 ✔️ password 🕐 🏗 ️.

💂‍♂, password 🏆 🚫 🎏 Pydantic 🏷, 🖼, 🏆 🚫 📨 ➡️ 🛠️ 🕐 👂 👩‍💻.

//// tab | 🐍 3️⃣.6️⃣ & 🔛

{!> ../../../docs_src/sql_databases/sql_app/schemas.py!}

////

//// tab | 🐍 3️⃣.9️⃣ & 🔛

{!> ../../../docs_src/sql_databases/sql_app_py39/schemas.py!}

////

//// tab | 🐍 3️⃣.1️⃣0️⃣ & 🔛

{!> ../../../docs_src/sql_databases/sql_app_py310/schemas.py!}

////

🇸🇲 👗 & Pydantic 👗

👀 👈 🇸🇲 🏷 🔬 🔢 ⚙️ =, & 🚶‍♀️ 🆎 🔢 Column, 💖:

name = Column(String)

Pydantic 🏷 📣 🆎 ⚙️ :, 🆕 🆎/🆎 🔑:

name: str

✔️ 🤯, 👆 🚫 🤚 😕 🕐 ⚙️ = & : ⏮️ 👫.

✍ Pydantic 🏷 / 🔗 👂 / 📨

🔜 ✍ Pydantic 🏷 (🔗) 👈 🔜 ⚙️ 🕐 👂 💽, 🕐 🛬 ➡️ 🛠️.

🖼, ⏭ 🏗 🏬, 👥 🚫 💭 🔜 🆔 🛠️ ️, 🕐 👂 ️ (🕐 🛬 ➡️ 🛠️) 👥 🔜 💭 🚮 🆔.

🎏 🌌, 🕐 👂 👩‍💻, 👥 💪 🔜 📣 👈 items 🔜 🔌 🏬 👈 💭 👉 👩‍💻.

🚫 🕴 🆔 📚 🏬, 🌐 💽 👈 👥 🔬 Pydantic 🏷 👂 🏬: Item.

//// tab | 🐍 3️⃣.6️⃣ & 🔛

{!> ../../../docs_src/sql_databases/sql_app/schemas.py!}

////

//// tab | 🐍 3️⃣.9️⃣ & 🔛

{!> ../../../docs_src/sql_databases/sql_app_py39/schemas.py!}

////

//// tab | 🐍 3️⃣.1️⃣0️⃣ & 🔛

{!> ../../../docs_src/sql_databases/sql_app_py310/schemas.py!}

////

/// tip

👀 👈 User, Pydantic 🏷 👈 🔜 ⚙️ 🕐 👂 👩‍💻 (🛬 ➡️ 🛠️) 🚫 🔌 password.

///

⚙️ Pydantic orm_mode

🔜, Pydantic 🏷 👂, Item & User, 🚮 🔗 Config 🎓.

👉 Config 🎓 ⚙️ 🚚 📳 Pydantic.

Config 🎓, ⚒ 🔢 orm_mode = True.

//// tab | 🐍 3️⃣.6️⃣ & 🔛

{!> ../../../docs_src/sql_databases/sql_app/schemas.py!}

////

//// tab | 🐍 3️⃣.9️⃣ & 🔛

{!> ../../../docs_src/sql_databases/sql_app_py39/schemas.py!}

////

//// tab | 🐍 3️⃣.1️⃣0️⃣ & 🔛

{!> ../../../docs_src/sql_databases/sql_app_py310/schemas.py!}

////

/// tip

👀 ️ ⚖ 💲 ⏮️ =, 💖:

orm_mode = True

🚫 ⚙️ : 🆎 📄 ⏭.

👉📁 💲, 🚫 📣 🆎.

///

Pydantic orm_mode 🔜 💬 Pydantic 🏷💽 🚥 🚫 dict, 🐜 🏷 (⚖️ 🙆 🎏 🎚 ⏮️ 🔢).

👉 🌌, ↩️ 🕴 🔄 🤚 id 💲 ➡️ dict,:

id = data["id"]

🔜 🔄 🤚 ➡️ 🔢,:

id = data.id

& ⏮️ 👉, Pydantic 🏷 🔗 ⏮️ 🐜, & 👆 💪 📣 response_model 👆 🛠️.

👆 🔜 💪 📨 💽 🏷 & 🔜💽 ➡️ ️.

📡🔃 🐜 📳

🇸🇲 & 📚 🎏 🔢 "🙃 🚚".

👈 ⛓, 🖼, 👈 👫 🚫 💽 💛 ➡️ 💽 🚥 👆 🔄 🔐 🔢 👈 🔜 🔌 👈 💽.

🖼, 🔐 🔢 items:

current_user.items

🔜🇸🇲 🚶 items 🏓 & 🤚 🏬 👉 👩‍💻, 🚫 ⏭.

🍵 orm_mode, 🚥 👆 📨 🇸🇲 🏷 ➡️ 👆 🛠️, 🚫🔜 🔌 💛 💽.

🚥 👆 📣 📚 💛 👆 Pydantic 🏷.

⏮️ 🐜 📳, Pydantic 🔜 🔄 🔐 💽 💪 ➡️ 🔢 (↩️ 🤔 dict), 👆 💪 📣 🎯 💽 👆 💚 📨 & 🔜 💪 🚶 & 🤚 ️, ➡️ 🐜.

💩 🇨🇻

🔜 ➡️ 👀 📁 sql_app/crud.py.

👉 📁 👥 🔜 ✔️🔢 🔗 ⏮️ 💽 💽.

💩 👟 ➡️: 🅱📧, 💳, 👤 = , & 🇨🇮📧.

...👐 👉 🖼 👥 🕴 🏗 & 👂.

💽

🗄 Session ➡️ sqlalchemy.orm, 👉 🔜👆 📣 🆎 db 🔢 & ✔️ 👻 🆎 & 🛠️ 👆 🔢.

🗄 models (🇸🇲 🏷) & schemas (Pydantic 🏷 / 🔗).

🚙 🔢:

  • ✍ 👁 👩‍💻 🆔 & 📧.
  • 💗 👩‍💻.
  • 💗 🏬.
{!../../../docs_src/sql_databases/sql_app/crud.py!}

/// tip

🏗 🔢 👈 🕴 💡 🔗 ⏮️ 💽 (🤚 👩‍💻 ⚖️ 🏬) 🔬 👆 🛠️ 🔢, 👆 💪 🌖 💪👫 💗 🍕 & 🚮 💯 👫.

///

💽

🔜🚙 🔢💽.

🔁:

  • 🇸🇲 🏷 👐 ⏮️ 👆 📊.
  • add 👈 👐 🎚 👆 💽 🎉.
  • commit 🔀 💽 (👈 👫 🖊).
  • refresh 👆 👐 (👈 🔌 🙆 🆕 📊 ➡️ 💽, 💖 🏗 🆔).
{!../../../docs_src/sql_databases/sql_app/crud.py!}

/// tip

🇸🇲 🏷 User 🔌 hashed_password 👈 🔜 🔌 🔐 #️⃣ 🔐.

🛠️ 👩‍💻 🚚 ⏮️ 🔐, 👆 💪️ & 🏗 #️⃣ 🔐 👆 🈸.

& ⤴️ 🚶‍♀️ hashed_password ⏮️ 💲 🖊.

///

/// warning

👉 🖼 🚫 🔐, 🔐 🚫#️⃣.

🎰 👨‍❤‍👨 🈸 👆 🔜 💪 #️⃣ 🔐 & 🙅 🖊 👫 🔢.

🌅 ℹ, 🚶 🔙 💂‍♂ 📄 🔰.

📥 👥 🎯 🕴 🔛 🧰 & 👨‍🔧 💽.

///

/// tip

↩️ 🚶‍♀️ 🔠 🇨🇻 Item & 👂 🔠 1️⃣ 👫 ➡️ Pydantic 🏷, 👥 🏭 dict ⏮️ Pydantic 🏷'Ⓜ 📊 ⏮️:

item.dict()

& ⤴️ 👥 🚶‍♀️ dict'Ⓜ 🔑-💲 👫 🇨🇻 🇸🇲 Item, ⏮️:

Item(**item.dict())

& ⤴️ 👥 🚶‍♀️ 🇨🇻 owner_id 👈 🚫 🚚 Pydantic 🏷, ⏮️:

Item(**item.dict(), owner_id=user_id)

///

👑 FastAPI 📱

& 🔜 📁 sql_app/main.py ➡️ 🛠️ & ⚙️ 🌐 🎏 🍕 👥 ✍ ⏭.

💽 🏓

📶 🙃 🌌💽 🏓:

//// tab | 🐍 3️⃣.6️⃣ & 🔛

{!> ../../../docs_src/sql_databases/sql_app/main.py!}

////

//// tab | 🐍 3️⃣.9️⃣ & 🔛

{!> ../../../docs_src/sql_databases/sql_app_py39/main.py!}

////

⚗ 🗒

🛎 👆 🔜 🎲 🔢 👆 💽 (✍ 🏓, ️) ⏮️ .

& 👆 🔜 ⚙️ ⚗ "🛠️" (👈 🚮 👑 👨‍🏭).

"🛠️" ⚒ 🔁 💪 🕐 👆 🔀 📊 👆 🇸🇲 🏷, 🚮 🆕 🔢, ️. 🔁 👈 🔀 💽, 🚮 🆕 🏓, 🆕 🏓, ️.

👆 💪 🔎 🖼 ⚗ FastAPI 🏗 📄 ➡️ 🏗 ⚡ - 📄{.internal-link target=_blank}. 🎯 alembic 📁 ℹ 📟.

🔗

🔜 ⚙️ SessionLocal 🎓 👥sql_app/database.py 📁🔗.

👥 💪 ✔️ 🔬 💽 🎉/🔗 (SessionLocal) 📍 📨, ⚙️ 🎏 🎉 🔘 🌐 📨 & ⤴️ 🔐 ⏮️ 📨 🏁.

& ⤴️ 🆕 🎉 🔜 ✍ ⏭ 📨.

👈, 👥 🔜🆕 🔗 ⏮️ yield, 🔬📄 🔃 🔗 ⏮️ yield{.internal-link target=_blank}.

👆 🔗 🔜🆕 🇸🇲 SessionLocal 👈 🔜 ⚙️ 👁 📨, & ⤴️ 🔐 🕐 📨 🏁.

//// tab | 🐍 3️⃣.6️⃣ & 🔛

{!> ../../../docs_src/sql_databases/sql_app/main.py!}

////

//// tab | 🐍 3️⃣.9️⃣ & 🔛

{!> ../../../docs_src/sql_databases/sql_app_py39/main.py!}

////

/// info

👥 🚮 🏗 SessionLocal() & 🚚 📨 try 🍫.

& ⤴️ 👥 🔐 finally 🍫.

👉 🌌 👥💭 💽 🎉 🕧 📪 ⏮️ 📨. 🚥 📤 🏭 📨.

👆 💪 🚫 🤚 1️⃣➡️ 🚪 📟 (⏮️ yield). 👀 🌖 🔗 ⏮️ yield & HTTPException{.internal-link target=_blank}

///

& ⤴️, 🕐 ⚙️ 🔗 🛠️ 🔢, 👥 📣 ⏮️ 🆎 Session 👥 🗄 🔗 ➡️ 🇸🇲.

👉 🔜 ⤴️ 🤝 👥 👍 👨‍🎨 🐕‍🦺 🔘 🛠️ 🔢, ↩️ 👨‍🎨 🔜 💭 👈 db 🔢 🆎 Session:

//// tab | 🐍 3️⃣.6️⃣ & 🔛

{!> ../../../docs_src/sql_databases/sql_app/main.py!}

////

//// tab | 🐍 3️⃣.9️⃣ & 🔛

{!> ../../../docs_src/sql_databases/sql_app_py39/main.py!}

////

/// info | "📡 ℹ"

🔢 db 🤙 🆎 SessionLocal, 👉 🎓 (✍ ⏮️ sessionmaker()) "🗳" 🇸🇲 Session,, 👨‍🎨 🚫 🤙 💭 👩‍🔬 🚚.

📣 🆎 Session, 👨‍🎨 🔜 💪 💭 💪 👩‍🔬 (.add(), .query(), .commit(), ️) & 💪 🚚 👍 🐕‍🦺 (💖 🛠️). 🆎 📄 🚫 📉 ☑ 🎚.

///

👆 FastAPI 🛠️

🔜, 😒, 📥 🐩 FastAPI 🛠️ 📟.

//// tab | 🐍 3️⃣.6️⃣ & 🔛

{!> ../../../docs_src/sql_databases/sql_app/main.py!}

////

//// tab | 🐍 3️⃣.9️⃣ & 🔛

{!> ../../../docs_src/sql_databases/sql_app_py39/main.py!}

////

👥 🏗 💽 🎉🔠 📨 🔗 ⏮️ yield, & ⤴️ 📪 ⏮️.

& ⤴️ 👥 💪🚚 🔗 🛠️ 🔢, 🤚 👈 🎉 🔗.

⏮️ 👈, 👥 💪 🤙 crud.get_user 🔗 ➡️ 🔘 🛠️ 🔢 & ⚙️ 👈 🎉.

/// tip

👀 👈 💲 👆 📨 🇸🇲 🏷, ⚖️ 📇 🇸🇲 🏷.

🌐 🛠️ ✔️ response_model ⏮️ Pydantic 🏷 / 🔗 ⚙️ orm_mode, 💽 📣 👆 Pydantic 🏷 🔜➡️ 👫 & 📨 👩‍💻, ⏮️ 🌐 😐 & 🔬.

///

/// tip

👀 👈 📤 response_models 👈 ✔️ 🐩 🐍 🆎 💖 List[schemas.Item].

️ 🎚/🔢 👈 List Pydantic 🏷 ⏮️ orm_mode, 💽 🔜 🗃 & 📨 👩‍💻 🛎, 🍵 ⚠.

///

🔃 def 🆚 async def

📥 👥 ⚙️ 🇸🇲 📟 🔘 🛠️ 🔢 & 🔗, &, 🔄, 🔜 🚶 & 🔗 ⏮️ 🔢 💽.

👈 💪🚚 "".

🇸🇲 🚫 ✔️ 🔗 ⚙️ await 🔗, 🔜 ⏮️ 🕳 💖:

user = await db.query(User).first()

...& ↩️ 👥 ⚙️:

user = db.query(User).first()

⤴️ 👥 🔜 📣 🛠️ 🔢 & 🔗 🍵 async def, ⏮️ 😐 def,:

@app.get("/users/{user_id}", response_model=schemas.User)
def read_user(user_id: int, db: Session = Depends(get_db)):
    db_user = crud.get_user(db, user_id=user_id)
    ...

/// info

🚥 👆 💪 🔗 👆 🔗 💽 🔁, 👀 🔁 🗄 (🔗) 💽{.internal-link target=_blank}.

///

/// note | "📶 📡 ℹ"

🚥 👆 😟 & ✔️ 📡 💡, 👆 💪 📶 📡 👉 async def 🆚 def 🍵 🔁{.internal-link target=_blank} 🩺.

///

🛠️

↩️ 👥 ⚙️ 🇸🇲 🔗 & 👥 🚫 🚚 🙆 😇 🔌-👷 ⏮️ FastAPI, 👥 💪 🛠️ 💽 🛠️ ⏮️ 🔗.

& 📟 🔗 🇸🇲 & 🇸🇲 🏷 🖖 🎏 🔬 📁, 👆 🔜 💪 🎭 🛠️ ⏮️🍵 ✔️ FastAPI, Pydantic, ⚖️ 🕳 🙆.

🎏 🌌, 👆 🔜 💪 ⚙️ 🎏 🇸🇲 🏷 & 🚙 🎏 🍕 👆 📟 👈 🚫 🔗 FastAPI.

🖼, 🖥 📋 👨‍🏭 ⏮️ 🥒, 🅿, ⚖️ 📶.

📄 🌐 📁

💭 👆 🔜 ✔️ 📁 📛 my_super_project 👈 🔌 🎧-📁 🤙 sql_app.

sql_app 🔜 ✔️ 📄 📁:

  • sql_app/__init__.py: 🛁 📁.

  • sql_app/database.py:

{!../../../docs_src/sql_databases/sql_app/database.py!}
  • sql_app/models.py:
{!../../../docs_src/sql_databases/sql_app/models.py!}
  • sql_app/schemas.py:

//// tab | 🐍 3️⃣.6️⃣ & 🔛

{!> ../../../docs_src/sql_databases/sql_app/schemas.py!}

////

//// tab | 🐍 3️⃣.9️⃣ & 🔛

{!> ../../../docs_src/sql_databases/sql_app_py39/schemas.py!}

////

//// tab | 🐍 3️⃣.1️⃣0️⃣ & 🔛

{!> ../../../docs_src/sql_databases/sql_app_py310/schemas.py!}

////

  • sql_app/crud.py:
{!../../../docs_src/sql_databases/sql_app/crud.py!}
  • sql_app/main.py:

//// tab | 🐍 3️⃣.6️⃣ & 🔛

{!> ../../../docs_src/sql_databases/sql_app/main.py!}

////

//// tab | 🐍 3️⃣.9️⃣ & 🔛

{!> ../../../docs_src/sql_databases/sql_app_py39/main.py!}

////

👆 💪 📁 👉 📟 & ⚙️ ️.

/// info

👐, 📟 🎦 📥 🍕 💯. 🌅 📟 👉 🩺.

///

⤴️ 👆 💪 🏃 ⏮️ Uvicorn:

$ uvicorn sql_app.main:app --reload

<span style="color: green;">INFO</span>:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)

& ⤴️, 👆 💪 📂 👆 🖥 http://127.0.0.1:8000/docs.

& 👆 🔜 💪 🔗 ⏮️ 👆 FastAPI 🈸, 👂 📊 ➡️ 🎰 💽:

🔗 ⏮️ 💽 🔗

🚥 👆 💚 🔬 🗄 💽 (📁) 🔗, ➡ FastAPI, ℹ 🚮 🎚, 🚮 🏓, 🏓, ⏺, 🔀 📊, ️. 👆 💪 ⚙️ 💽 🖥 🗄.

🔜 👀 💖 👉:

👆 💪 ⚙️ 💳 🗄 🖥 💖 🗄 📋 ⚖️ ExtendsClass.

🎛 💽 🎉 ⏮️ 🛠️

🚥 👆 💪 🚫 ⚙️ 🔗 ⏮️ yield - 🖼, 🚥 👆 🚫 ⚙️ 🐍 3️⃣.7️⃣ & 💪 🚫 "🐛" 🤔 🔛 🐍 3️⃣.6️⃣ - 👆 💪🆙 🎉 "🛠️" 🎏 🌌.

"🛠️" 🌖 🔢 👈 🕧 🛠️ 🔠 📨, ⏮️ 📟 🛠️ ⏭, & 📟 🛠️ ⏮️ 🔗 🔢.

🛠️

🛠️ 👥 🔜 🚮 (🔢) 🔜🆕 🇸🇲 SessionLocal 🔠 📨, 🚮 📨 & ⤴️ 🔐 🕐 📨 🏁.

//// tab | 🐍 3️⃣.6️⃣ & 🔛

{!> ../../../docs_src/sql_databases/sql_app/alt_main.py!}

////

//// tab | 🐍 3️⃣.9️⃣ & 🔛

{!> ../../../docs_src/sql_databases/sql_app_py39/alt_main.py!}

////

/// info

👥 🚮 🏗 SessionLocal() & 🚚 📨 try 🍫.

& ⤴️ 👥 🔐 finally 🍫.

👉 🌌 👥💭 💽 🎉 🕧 📪 ⏮️ 📨. 🚥 📤 🏭 📨.

///

🔃 request.state

request.state 🏠 🔠 Request 🎚. 📤 🏪 🎚 📎 📨 ️, 💖 💽 🎉 👉 💼. 👆 💪🌅 🔃 💃 🩺 🔃 Request 🇵🇸.

👥 👉 💼, ️ ℹ 👥 🚚 👁 💽 🎉 ⚙️ 🔘 🌐 📨, & ⤴️ 🔐 ⏮️ (🛠️).

🔗 ⏮️ yield ⚖️ 🛠️

🛠️ 📥 🎏 🔗 ⏮️ yield 🔨, ⏮️ 🔺:

  • 🚚 🌖 📟 & 👄 🌅 🏗.
  • 🛠️ ✔️ async 🔢.
    • 🚥 📤 📟 👈 ✔️ "" 🕸, 💪 "🍫" 👆 🈸 📤 & 📉 🎭 🍖.
    • 👐 🎲 🚫 📶📥 ⏮️ 🌌 SQLAlchemy 👷.
    • 🚥 👆 🚮 🌖 📟 🛠️ 👈 ✔️ 📚 👤/🅾 , 💪 ⤴️ ⚠.
  • 🛠️ 🏃 🔠 📨.
    • , 🔗 🔜🔠 📨.
    • 🕐 🛠️ 👈 🍵 👈 📨 🚫 💪 💽.

/// tip

🎲 👍 ⚙️ 🔗 ⏮️ yield 🕐 👫 🥃 ⚙️ 💼.

///

/// info

🔗 ⏮️ yield 🚮 FastAPI.

⏮️ 👉 🔰 🕴 ✔️ 🖼 ⏮️ 🛠️ & 📤 🎲 📚 🈸 ⚙️ 🛠️ 💽 🎉 🧾.

///