{"id":135336,"date":"2024-09-06T10:30:51","date_gmt":"2024-09-06T05:00:51","guid":{"rendered":"https:\/\/www.vskills.in\/certification\/tutorial\/?page_id=135336"},"modified":"2024-09-06T10:34:20","modified_gmt":"2024-09-06T05:04:20","slug":"setting-up-async-databases-with-fastapi","status":"publish","type":"page","link":"https:\/\/www.vskills.in\/certification\/tutorial\/setting-up-async-databases-with-fastapi\/","title":{"rendered":"Setting Up Async Databases with FastAPI"},"content":{"rendered":"\n<p>Asynchronous programming is becoming increasingly popular in Python due to its ability to handle multiple tasks concurrently without blocking the main thread. When working with FastAPI, integrating asynchronous database operations can significantly improve performance and scalability. This guide will walk you through the steps of setting up an asynchronous database with FastAPI, using PostgreSQL as an example.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Prerequisites<\/strong><\/h2>\n\n\n\n<p>Before we begin, ensure you have the following installed:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Python 3.7 or later<\/strong><\/li>\n\n\n\n<li><strong>FastAPI<\/strong><\/li>\n\n\n\n<li><strong>uvicorn<\/strong><\/li>\n\n\n\n<li><strong>asyncpg<\/strong> (for PostgreSQL) or other appropriate asynchronous database driver<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Creating a Database Connection<\/strong><\/h2>\n\n\n\n<p><strong>Import Necessary Modules:<\/strong><\/p>\n\n\n\n<p>Python<\/p>\n\n\n\n<p>from sqlalchemy.ext.asyncio import create_async_engine<br>from sqlalchemy.orm import sessionmaker<\/p>\n\n\n\n<p><strong>Define the Database URL:<\/strong><\/p>\n\n\n\n<p>Python<\/p>\n\n\n\n<p>DATABASE_URL = &#8220;postgresql:\/\/user:password@host:port\/database&#8221;<\/p>\n\n\n\n<p><strong>Create the Engine:<\/strong><\/p>\n\n\n\n<p>Python<\/p>\n\n\n\n<p>engine = create_async_engine(DATABASE_URL)<\/p>\n\n\n\n<p><strong>Create the Session Factory:<\/strong><\/p>\n\n\n\n<p>Python<\/p>\n\n\n\n<p>async_session = sessionmaker(autocommit=False, autoflush=False, bind=engine)<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Creating a Dependency<\/strong><\/h2>\n\n\n\n<p>To inject the database session into your FastAPI endpoints, create a dependency:<\/p>\n\n\n\n<p>Python<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>from fastapi import Depends\n\nasync def get_db():\n    async with async_session() as session:\n        yield session\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Using the Database in Endpoints<\/strong><\/h2>\n\n\n\n<p>Now, you can use the <code class=\"\">db<\/code> dependency in your FastAPI endpoints to perform asynchronous database operations:<\/p>\n\n\n\n<p>Python<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>from fastapi import APIRouter, Depends\n\nrouter = APIRouter()\n\n@router.post(\"\/users\")\nasync def create_user(user: User, db: Session = Depends(get_db)):\n    async with db:\n        db.add(user)\n        await db.commit()\n        await db.refresh(user)\n        return user\n<\/code><\/pre>\n\n\n\n<p>By following these steps, you can effectively integrate asynchronous databases with your FastAPI applications, improving performance and scalability.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Asynchronous programming is becoming increasingly popular in Python due to its ability to handle multiple tasks concurrently without blocking the main thread. When working with FastAPI, integrating asynchronous database operations can significantly improve performance and scalability. This guide will walk you through the steps of setting up an asynchronous database with FastAPI, using PostgreSQL as&#8230;<\/p>\n","protected":false},"author":16,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-135336","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Setting Up Async Databases with FastAPI - Tutorial<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.vskills.in\/certification\/tutorial\/setting-up-async-databases-with-fastapi\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Setting Up Async Databases with FastAPI - Tutorial\" \/>\n<meta property=\"og:description\" content=\"Asynchronous programming is becoming increasingly popular in Python due to its ability to handle multiple tasks concurrently without blocking the main thread. When working with FastAPI, integrating asynchronous database operations can significantly improve performance and scalability. This guide will walk you through the steps of setting up an asynchronous database with FastAPI, using PostgreSQL as...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.vskills.in\/certification\/tutorial\/setting-up-async-databases-with-fastapi\/\" \/>\n<meta property=\"og:site_name\" content=\"Tutorial\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/vskills.in\/\" \/>\n<meta property=\"article:modified_time\" content=\"2024-09-06T05:04:20+00:00\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/setting-up-async-databases-with-fastapi\/\",\"url\":\"https:\/\/www.vskills.in\/certification\/tutorial\/setting-up-async-databases-with-fastapi\/\",\"name\":\"Setting Up Async Databases with FastAPI - Tutorial\",\"isPartOf\":{\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/#website\"},\"datePublished\":\"2024-09-06T05:00:51+00:00\",\"dateModified\":\"2024-09-06T05:04:20+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/setting-up-async-databases-with-fastapi\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.vskills.in\/certification\/tutorial\/setting-up-async-databases-with-fastapi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/setting-up-async-databases-with-fastapi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.vskills.in\/certification\/tutorial\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Setting Up Async Databases with FastAPI\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/#website\",\"url\":\"https:\/\/www.vskills.in\/certification\/tutorial\/\",\"name\":\"Tutorial\",\"description\":\"Vskills - A initiative in elearning and certification\",\"publisher\":{\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.vskills.in\/certification\/tutorial\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/#organization\",\"name\":\"Vskills\",\"url\":\"https:\/\/www.vskills.in\/certification\/tutorial\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.vskills.in\/certification\/tutorial\/wp-content\/uploads\/2017\/07\/vskills-min-logo.jpg\",\"contentUrl\":\"https:\/\/www.vskills.in\/certification\/tutorial\/wp-content\/uploads\/2017\/07\/vskills-min-logo.jpg\",\"width\":73,\"height\":55,\"caption\":\"Vskills\"},\"image\":{\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/vskills.in\/\",\"https:\/\/x.com\/vskills_in\",\"https:\/\/www.linkedin.com\/company-beta\/1371554\/\",\"https:\/\/www.youtube.com\/channel\/UCMWnscxPwRF_PqXo9B7q_Tw\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Setting Up Async Databases with FastAPI - Tutorial","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.vskills.in\/certification\/tutorial\/setting-up-async-databases-with-fastapi\/","og_locale":"en_US","og_type":"article","og_title":"Setting Up Async Databases with FastAPI - Tutorial","og_description":"Asynchronous programming is becoming increasingly popular in Python due to its ability to handle multiple tasks concurrently without blocking the main thread. When working with FastAPI, integrating asynchronous database operations can significantly improve performance and scalability. This guide will walk you through the steps of setting up an asynchronous database with FastAPI, using PostgreSQL as...","og_url":"https:\/\/www.vskills.in\/certification\/tutorial\/setting-up-async-databases-with-fastapi\/","og_site_name":"Tutorial","article_publisher":"https:\/\/www.facebook.com\/vskills.in\/","article_modified_time":"2024-09-06T05:04:20+00:00","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.vskills.in\/certification\/tutorial\/setting-up-async-databases-with-fastapi\/","url":"https:\/\/www.vskills.in\/certification\/tutorial\/setting-up-async-databases-with-fastapi\/","name":"Setting Up Async Databases with FastAPI - Tutorial","isPartOf":{"@id":"https:\/\/www.vskills.in\/certification\/tutorial\/#website"},"datePublished":"2024-09-06T05:00:51+00:00","dateModified":"2024-09-06T05:04:20+00:00","breadcrumb":{"@id":"https:\/\/www.vskills.in\/certification\/tutorial\/setting-up-async-databases-with-fastapi\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.vskills.in\/certification\/tutorial\/setting-up-async-databases-with-fastapi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.vskills.in\/certification\/tutorial\/setting-up-async-databases-with-fastapi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.vskills.in\/certification\/tutorial\/"},{"@type":"ListItem","position":2,"name":"Setting Up Async Databases with FastAPI"}]},{"@type":"WebSite","@id":"https:\/\/www.vskills.in\/certification\/tutorial\/#website","url":"https:\/\/www.vskills.in\/certification\/tutorial\/","name":"Tutorial","description":"Vskills - A initiative in elearning and certification","publisher":{"@id":"https:\/\/www.vskills.in\/certification\/tutorial\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.vskills.in\/certification\/tutorial\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.vskills.in\/certification\/tutorial\/#organization","name":"Vskills","url":"https:\/\/www.vskills.in\/certification\/tutorial\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.vskills.in\/certification\/tutorial\/#\/schema\/logo\/image\/","url":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-content\/uploads\/2017\/07\/vskills-min-logo.jpg","contentUrl":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-content\/uploads\/2017\/07\/vskills-min-logo.jpg","width":73,"height":55,"caption":"Vskills"},"image":{"@id":"https:\/\/www.vskills.in\/certification\/tutorial\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/vskills.in\/","https:\/\/x.com\/vskills_in","https:\/\/www.linkedin.com\/company-beta\/1371554\/","https:\/\/www.youtube.com\/channel\/UCMWnscxPwRF_PqXo9B7q_Tw"]}]}},"_links":{"self":[{"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/pages\/135336","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/users\/16"}],"replies":[{"embeddable":true,"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/comments?post=135336"}],"version-history":[{"count":2,"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/pages\/135336\/revisions"}],"predecessor-version":[{"id":135351,"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/pages\/135336\/revisions\/135351"}],"wp:attachment":[{"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/media?parent=135336"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/categories?post=135336"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/tags?post=135336"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}