Build a CRUD Rest API in Python using Flask, Postgres, Docker and Docker compose

Поділитися
Вставка
  • Опубліковано 2 гру 2024

КОМЕНТАРІ • 48

  • @ibiawosanya9233
    @ibiawosanya9233 Рік тому +7

    Excellent tutorial, was a total beginner and now I created the Python Flask web application and Dockerized in less than 30 mins.

    • @francescociulla
      @francescociulla  Рік тому +1

      you are welcome! I will post this comment on Twitter soon

  • @matheusmagalhaes7054
    @matheusmagalhaes7054 11 місяців тому +2

    A 29-minute video took me two days of study because I had never configured Docker on WSL before. I needed to learn the basics of Flask, Docker, and Postgres to successfully follow the tutorial. The content was amazing, and I managed to complete everything, although with some modifications. The assistance from ChatGPT was crucial in understanding concepts and commands, making the process more easier. Ty boss

  • @francescociulla
    @francescociulla  Рік тому +3

    Find Francesco: francescociulla.com
    0:00 Intro. Architecture and project setup. Dependencies in requirements.txt
    2:40 app file: Flask app, SQLAlchemy app, Model, test route
    6:15: routes and CRUD controllers: Create, Read, Update, Delete
    12:04 Dockerize the Flask application. Dockerfile
    14:08 docker-compose.yml: flask app and Postgres services
    18:00 Test Postgres container. test with Tableplus
    19:45 Build the image (debug) and run the app service. Test endpoints
    23:53 Bug fixing. Final test

  • @ΡαφαήλΣαμωνάκης
    @ΡαφαήλΣαμωνάκης Місяць тому +1

    Perfect! It works like a charm! You saved me so much time, thanks!
    NOTE! : I had an issue with the GET requests but i replaced "user.json()" with "user.toJson()"

  • @rojansapkotaofficial
    @rojansapkotaofficial Рік тому +4

    Great One!

  • @mrjmrezende
    @mrjmrezende Рік тому +5

    When I run "docker compose up --build flask_app" I received the message:
    RuntimeError: Working outside of application context.
    This typically means that you attempted to use functionality that needed
    the current application. To solve this, set up an application context
    with app.app_context(). See the documentation for more information.
    Any suggestions to resolve this? Sorry, I'm beginner

    • @francescociulla
      @francescociulla  Рік тому

      are you using docker or just running the flask application?

    • @mihaiion5879
      @mihaiion5879 Рік тому

      I had the same problem; for me it was because I changed the version from Dockerfile from `python:3.6-slim-buster` to `python:3.8` or even `python:3.10`

    • @LongBoy.0
      @LongBoy.0 11 місяців тому

      @@mihaiion5879 I'm on python:3.8-slim-buster and getting the error OP described as well. When I changed back to 3.6 slim-buster, the error was solved

  • @Useroftherisingsun
    @Useroftherisingsun Рік тому +2

    Thank you sir, you saved me hours!!

  • @TheIaTaI
    @TheIaTaI Рік тому +2

    Is code suggestions being suggested by an extension?
    Is there a similiar co-pilot in pycharm?

  • @michaeloneill3786
    @michaeloneill3786 8 місяців тому +1

    Why did the API return HTML to Postman when you encountered the error? Shouldn't it have returned your generic JSON error message?

  • @GauravSingh-ui3jr
    @GauravSingh-ui3jr Рік тому +1

    API's all the endpoints are working fine, After containerizing it using docker the Database is created as per Table Plus. Test endpoint of the application is working fine. But I am getting error that no table exists. I tried multiple solutions from internet and chatgpt. Please help

    • @francescociulla
      @francescociulla  Рік тому

      it should be created by the flask app, please trey to follow step by step, running first the db container, then the flask app. works on my side

  • @zaki9815
    @zaki9815 Рік тому +2

    My friend, you can use command "docker compose logs -f" for debugging

    • @francescociulla
      @francescociulla  Рік тому

      I know ;)

    • @zaki9815
      @zaki9815 Рік тому +2

      @@francescociulla You know but you didn’t use it to figure out the internal error, it would be a good addition to use it in your video.
      Keep going my friend

    • @HarmanSingh-pb6ls
      @HarmanSingh-pb6ls 5 місяців тому

      @@zaki9815 hey man can you help me out with this issue:
      whenever i run docker compose up --build flask_app" or docker compose up flask_db" i get the error as:o configuration file provided: not found

    • @radum_val
      @radum_val 4 місяці тому

      @@HarmanSingh-pb6ls Check that you are in the proper folder that contains the Dockerfile.

  • @HarpreetSinghSohal-q5r
    @HarpreetSinghSohal-q5r 2 місяці тому

    Docker Compose w/ PostgreSQL - psql Password Authentication failed - This is the error I got, after breaking my head for some two days I realised that I just had to stop the local postgres service to free the port. Once I did that, the error disappeard.

    • @francescociulla
      @francescociulla  2 місяці тому

      glad you solved,, it! yes that's kind of annoying

  • @koudjoura
    @koudjoura 11 місяців тому

    good video , if i want to create 2 container , one for DB and other for the API, how can i process?

    • @francescociulla
      @francescociulla  11 місяців тому +1

      hey, thnak you. this is es exactly what the videos shows, if something is not clear let me know!

    • @koudjoura
      @koudjoura 11 місяців тому

      @@francescociulla yes i got it , thank you , but other question if I want to use docker to set an application hosting automation platform developed under Framework (python or PHP) how can I process , like what are the steps ?

  • @susmitadey6735
    @susmitadey6735 Рік тому +1

    I'm unable to create users. Help me.

    • @francescociulla
      @francescociulla  Рік тому

      are you doing post requests? was the database created?

    • @susmitadey6735
      @susmitadey6735 Рік тому +1

      @@francescociulla Yes. I'm doing post requests. But the database is not getting created.

    • @francescociulla
      @francescociulla  Рік тому

      @@susmitadey6735 you should have it as soon as you run the flask app. do you get the list of empty users? did you try to just clone the repo and spin up the services?

    • @susmitadey6735
      @susmitadey6735 Рік тому +1

      @@francescociulla I got the list of empty users after running the flask app. I didn't tried to clone the repo. I tried to code along with you in the video.

    • @francescociulla
      @francescociulla  Рік тому

      @@susmitadey6735 if you have the empty users it means the database is there. try again with the post request and check the values

  • @ankitsoni534
    @ankitsoni534 11 місяців тому +1

    Hello I need some help,

    • @francescociulla
      @francescociulla  11 місяців тому

      hello, that's too generic. about the video?

  • @fargatepb-tb1rl
    @fargatepb-tb1rl 7 місяців тому

    Why i can't connect to db in postgres, i get this error from table plus:
    connection to server at "localhost" (::1), port 5432 failed: FATAL: la autentificaci�n password fall� para el usuario �postgres�
    I did everything the same until I reached the command: docker compose up -d flask_db
    help please.

    • @francescociulla
      @francescociulla  7 місяців тому

      The password for the db is wrong

    • @fargatepb-tb1rl
      @fargatepb-tb1rl 7 місяців тому

      @@francescociulla the password is postgres , i don’t know why it does not work

    • @fargatepb-tb1rl
      @fargatepb-tb1rl 7 місяців тому

      @@francescociulla I had to change the port in docker compose, i don't know why with "5432:5432" does not work
      ports:
      - "5433:5432" (that's how it works)
      thankU, nice tutorial

    • @francescociulla
      @francescociulla  7 місяців тому +1

      @fargatepb-tb1rl maybe you already have a running instance of postgres running on that port