FastAPI & SQLModel - Database Interaction in FastAPI apps with SQLModel

แชร์
ฝัง
  • เผยแพร่เมื่อ 21 พ.ย. 2024

ความคิดเห็น • 52

  • @DarshModi-il5et
    @DarshModi-il5et 10 วันที่ผ่านมา +1

    Well explained, Really appreciated! Thank you so much.

    • @bugbytes3923
      @bugbytes3923  5 วันที่ผ่านมา

      Thanks a lot mate!

  • @dixon1e
    @dixon1e 7 หลายเดือนก่อน +3

    This is incredibly well produced and deeply informative. Thank you.

    • @bugbytes3923
      @bugbytes3923  7 หลายเดือนก่อน

      Thanks a lot, delighted to hear that! Cheers!

  • @thierryyolepiot9951
    @thierryyolepiot9951 5 หลายเดือนก่อน +7

    Can you show hoz to set up FastAPI with MySQL and PostGreSQL (especially with the async features)?

  • @LaichuTV
    @LaichuTV 3 หลายเดือนก่อน +1

    Bro thank you for creating these videos, deeply respect!

    • @bugbytes3923
      @bugbytes3923  3 หลายเดือนก่อน +1

      Thanks a lot for the comments bro, cheers!

  • @djtoon8412
    @djtoon8412 6 หลายเดือนก่อน +1

    also setting up with postgres docker and traefik .Also an additional content can be sending emails and show how to create email templates

  • @opticonor
    @opticonor 7 หลายเดือนก่อน +2

    Lots of value in this video, thanks!!

    • @bugbytes3923
      @bugbytes3923  7 หลายเดือนก่อน +1

      Thanks a lot!

  • @abdullahbutt324
    @abdullahbutt324 2 หลายเดือนก่อน +2

    In case someone got the error saying "No details". Its because u need to restart the server again. So its better that u add the keyword --reload after the uvicorn command. Then try again it will run smoothly

    • @bugbytes3923
      @bugbytes3923  2 หลายเดือนก่อน

      Great tip for development!

  • @tascsolutions6483
    @tascsolutions6483 6 หลายเดือนก่อน +1

    Great content! Can you please explain why some tutorials use pydantic models(schemas) AND sql models (models)? I find this confusing and causing issues.

    • @matis9783
      @matis9783 6 หลายเดือนก่อน

      Maybe single responsibility principle

    • @TOn-fx2gr
      @TOn-fx2gr 6 หลายเดือนก่อน

      That's how it worked in the paste but then the developer of fastapi created sqlmodel which use pydantic and sqlalchemy under the hood to make our life much easier ,i think most people in youtube are not aware that sqlmodel exist

  • @recaseng
    @recaseng 7 หลายเดือนก่อน

    Please do more on the crud operations as well as error handlings please

  • @ayushshende4290
    @ayushshende4290 6 หลายเดือนก่อน

    A video on env config and file structure for bigger projects would also be helpful

  • @juvewan
    @juvewan 7 หลายเดือนก่อน +2

    Endpoint functions are defined as `async def`, but the db operations inside are all sync, including the get_session depency. This is bad in a real project. async def endpoints are running in an event loop, time cosuming db operations are not awaited, so they will block the event loop.

    • @zoxxar
      @zoxxar 7 หลายเดือนก่อน

      can you give an example of changing a DB operation to support async?

    • @syntaxsavvy2708
      @syntaxsavvy2708 9 วันที่ผ่านมา

      yeah this is the first time i see it, he did it wrong. if the library we are using does not support async await. use non async endpoint so that all tasks are thrown to the threadpool

  • @kushalpy
    @kushalpy 7 หลายเดือนก่อน

    Love from Nepal❤

    • @bugbytes3923
      @bugbytes3923  7 หลายเดือนก่อน

      Thanks a lot!

  • @catchychazz
    @catchychazz 7 หลายเดือนก่อน +1

    Is SQLModel still necessary with SQLAlchemy 2.0?

  • @farzadmf
    @farzadmf 7 หลายเดือนก่อน

    Instead of converting the type to a string, you can do `from __future__ import annotations`

    • @darkbluewalther
      @darkbluewalther 2 หลายเดือนก่อน +1

      I thought too, but it actually raises an error at Runtime when trying to fetch object: sqlalchemy.exc.InvalidRequestError: When initializing mapper Mapper[Shop(shop)], expression "relationship('list[Product]')" seems to be using a generic class as the argument to relationship(); please state the generic argument using an annotation, e.g. "products: Mapped[list['Product']] = relationship()"

    • @farzadmf
      @farzadmf 2 หลายเดือนก่อน

      Weird 🤔

  • @Steve51791
    @Steve51791 4 หลายเดือนก่อน +1

    Why should one create subclasses and inherit from a base class? Is there a reason you shouldn't just, for example, put the primary key field in the parent class?

  • @AmoahDevLabs
    @AmoahDevLabs 7 หลายเดือนก่อน

    great one.

    • @bugbytes3923
      @bugbytes3923  7 หลายเดือนก่อน

      Thanks as always!

  • @djtoon8412
    @djtoon8412 7 หลายเดือนก่อน

    can we also get one for microservices using gRPC

  • @boholsurf_2749
    @boholsurf_2749 4 หลายเดือนก่อน

    great video

    • @bugbytes3923
      @bugbytes3923  3 หลายเดือนก่อน

      Thanks a lot!

  • @tejas8211
    @tejas8211 2 หลายเดือนก่อน

    Why did you not chose SQL Alchemy for this demonstration ?

  • @losco_arti
    @losco_arti 7 หลายเดือนก่อน

    Best content!

    • @bugbytes3923
      @bugbytes3923  7 หลายเดือนก่อน

      Thanks a lot!

  • @beefbox
    @beefbox 7 หลายเดือนก่อน

    Hey, do you consider making an unpoly video? I feel like the library is so underrated.

    • @bugbytes3923
      @bugbytes3923  7 หลายเดือนก่อน

      It has been on the list for a while, yeah. I'll try and get that done soon.

  • @MubasharDev-d7t
    @MubasharDev-d7t หลายเดือนก่อน

    I am new to fastapi and all backend stuff. Maybe I ask silly question but kindly response me ASAP as I am learning it on my full power 😅
    How can I deploy it on vercel? As I've been deploying it on vercel previously without any database. The file db.sqlite how can I manage that. For example me app is in production and wanted to do some changes in APIs or add new tables. And give it a push to github for auto deploy on vercel. Won't it wipe the previous database? How can I protect the latest database. I am much confused on this.

  • @gerrior
    @gerrior 5 หลายเดือนก่อน

    Timestamp: 18:30. Even after adding `None` to the `band_id` at runtime I'm getting "pydantic_core: 1 validation error for AlbumBase" "band_id missing". I am using Progres instead of SQLite.

    • @fernandohtr
      @fernandohtr 5 หลายเดือนก่อน

      I also had a problem around this video time. The error returned was not so clear. To solve the problem in my case, I had to transform the "album.release_date" from string to datetime.date.
      It was something more or less like this:
      if band_data.albums:
      for album in band_data.albums:
      raw_album_date = album.release_date.split("-")
      year = int(raw_album_date[0])
      month = int(raw_album_date[1])
      day = int(raw_album_date[2])

      album_date = date(year, month, day)

      album_obj = Album(
      title=album.title,
      release_date=album_date,
      band=band
      )
      session.add(album_obj)

    • @Ceddybaer
      @Ceddybaer 5 หลายเดือนก่อน +3

      I ran into the same issue on SQLite. I fixed it by adding "default=None" to the parameters of Field().

    • @thierryyolepiot9951
      @thierryyolepiot9951 5 หลายเดือนก่อน +1

      @@Ceddybaer I added "default=None" to the parameters of Field() on line 23, ie
      band_id: int | None = Field(default=None, foreign_key="band.id")
      But the error still remains

    • @subz424
      @subz424 4 หลายเดือนก่อน

      @@Ceddybaer Nice! I like this solution, thank you 😃.

  • @fazlehadiazmat7g803
    @fazlehadiazmat7g803 4 หลายเดือนก่อน

    dyed your hair?

  • @alexandrodisla6285
    @alexandrodisla6285 7 หลายเดือนก่อน +1

    restAPI,sqlmodel,alembic. docker .compose and metrics

    • @bugbytes3923
      @bugbytes3923  7 หลายเดือนก่อน +1

      Alembic + FastAPI + SQLModel early this week! Thanks.

  • @shahriarahmed9387
    @shahriarahmed9387 หลายเดือนก่อน

    raise ValueError(f"{type_} has no matching SQLAlchemy type")
    ValueError: has no matching SQLAlchemy type