<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: SOURABH KUMAR VERMA</title>
    <description>The latest articles on DEV Community by SOURABH KUMAR VERMA (@sourabhkv).</description>
    <link>https://dev.to/sourabhkv</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2118817%2F1e337367-9bd0-4ce4-a825-c26e2c7a5768.png</url>
      <title>DEV Community: SOURABH KUMAR VERMA</title>
      <link>https://dev.to/sourabhkv</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sourabhkv"/>
    <language>en</language>
    <item>
      <title>Integrating Azure SQL with Django : A Step-by-Step Guide</title>
      <dc:creator>SOURABH KUMAR VERMA</dc:creator>
      <pubDate>Tue, 24 Sep 2024 10:44:59 +0000</pubDate>
      <link>https://dev.to/sourabhkv/integrating-azure-sql-with-django-4o0c</link>
      <guid>https://dev.to/sourabhkv/integrating-azure-sql-with-django-4o0c</guid>
      <description>&lt;p&gt;Hi👋 I'm Sourabh and student ambassador form Bangalore studying Computer Science from BIT&lt;/p&gt;




&lt;h2&gt;
  
  
  Integrating Django with Azure SQL
&lt;/h2&gt;

&lt;p&gt;Migrating your Django project to a cloud-based database like &lt;strong&gt;Azure SQL&lt;/strong&gt; can significantly enhance its scalability, reliability, and performance. This guide will walk you through the process of integrating Django with Azure SQL.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=jQm-YlEtCPg" rel="noopener noreferrer"&gt;Watch the Demo on YouTube&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Prerequisites
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Azure Subscription&lt;/strong&gt;: Get &lt;a href="https://azure.microsoft.com/en-in/free/students?wt.mc_id=studentamb_264449" rel="noopener noreferrer"&gt;Azure for Students&lt;/a&gt; to receive $100 in credits for 12 months.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Django Project&lt;/strong&gt;: Ensure you have an existing Django project set up.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;VS Code&lt;/strong&gt;: Install &lt;a href="https://code.visualstudio.com/?wt.mc_id=studentamb_264449" rel="noopener noreferrer"&gt;Visual Studio Code&lt;/a&gt; for your code editing needs.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Required Packages
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;django pyodbc mssql-django
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;ODBC Driver installation&lt;/strong&gt;&lt;br&gt;
To connect Django to Azure SQL, you'll need to install the ODBC driver for SQL Server. The following command installs the &lt;strong&gt;ODBC Driver 17 for SQL Server&lt;/strong&gt; depending on your operating system:&lt;/p&gt;
&lt;h3&gt;
  
  
  For Ubuntu/Linux:
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;su 
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; /etc/apt/sources.list.d/mssql-release.list
&lt;span class="nb"&gt;exit
sudo &lt;/span&gt;apt-get update
&lt;span class="nb"&gt;sudo &lt;/span&gt;&lt;span class="nv"&gt;ACCEPT_EULA&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;Y apt-get &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-y&lt;/span&gt; msodbcsql17
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-y&lt;/span&gt; unixodbc-dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  For macOS:
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;brew tap microsoft/mssql-release https://github.com/Microsoft/homebrew-mssql-release
brew update
brew &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--no-sandbox&lt;/span&gt; msodbcsql17 mssql-tools
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  For Windows:
&lt;/h3&gt;

&lt;p&gt;You can download and install the driver from &lt;a href="https://docs.microsoft.com/en-us/sql/connect/odbc/download-odbc-driver-for-sql-server?wt.mc_id=studentamb_264449" rel="noopener noreferrer"&gt;Microsoft's website&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Once the driver is installed, your Django project should be able to connect to Azure SQL using the &lt;code&gt;mssql-django&lt;/code&gt; package.&lt;/p&gt;
&lt;h3&gt;
  
  
  Why Azure SQL Over SQLite3?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Scalability&lt;/strong&gt;: Handles large datasets and high traffic effortlessly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reliability&lt;/strong&gt;: Managed by Microsoft, offering high availability and disaster recovery.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security&lt;/strong&gt;: Advanced features like encryption, threat detection, and compliance.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Performance&lt;/strong&gt;: Features like automatic tuning and intelligent query processing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Remote Access&lt;/strong&gt;: Access your database from anywhere.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmxi4v7c1baax8rhk2p84.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmxi4v7c1baax8rhk2p84.png" alt="Key benefits of Azure SQL" width="" height=""&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  Step-by-Step Integration
&lt;/h3&gt;
&lt;h4&gt;
  
  
  1. Set Up Azure SQL Database
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhfeerjmjkvrw6jookmnx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhfeerjmjkvrw6jookmnx.png" alt="Deployment AZ SQL" width="" height=""&gt;&lt;/a&gt;&lt;br&gt;
📝Note - deployment can also be done through Azure Portal&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Create a Resource Group&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  az group create &lt;span class="nt"&gt;-l&lt;/span&gt; &amp;lt;location&amp;gt; &lt;span class="nt"&gt;-n&lt;/span&gt; &amp;lt;MyResourceGroup&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Create a SQL Server&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  az sql server create &lt;span class="nt"&gt;-n&lt;/span&gt; &amp;lt;server-name&amp;gt; &lt;span class="nt"&gt;-l&lt;/span&gt; &amp;lt;location&amp;gt; &lt;span class="nt"&gt;--admin-user&lt;/span&gt; &amp;lt;admin-user&amp;gt; &lt;span class="nt"&gt;--admin-password&lt;/span&gt; &amp;lt;admin-password&amp;gt; &lt;span class="nt"&gt;-g&lt;/span&gt; &amp;lt;resource-group&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Create the Database&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  az sql db create &lt;span class="nt"&gt;-g&lt;/span&gt; &amp;lt;resource-group&amp;gt; &lt;span class="nt"&gt;-s&lt;/span&gt; &amp;lt;server-name&amp;gt; &lt;span class="nt"&gt;-n&lt;/span&gt; my-db &lt;span class="nt"&gt;--service-objective&lt;/span&gt; GP_Gen5_2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Allow Your IP in Firewall&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  az sql server firewall-rule create &lt;span class="nt"&gt;--resource-group&lt;/span&gt; &amp;lt;resource-group&amp;gt; &lt;span class="nt"&gt;--server&lt;/span&gt; &amp;lt;server-name&amp;gt; &lt;span class="nt"&gt;--name&lt;/span&gt; AllowMyClientIP &lt;span class="nt"&gt;--start-ip-address&lt;/span&gt; &amp;lt;your_public_ip&amp;gt; &lt;span class="nt"&gt;--end-ip-address&lt;/span&gt; &amp;lt;your_public_ip&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  2. Install Required Packages
&lt;/h4&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;django pyodbc mssql-django
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  3. Configure Django Settings
&lt;/h4&gt;

&lt;p&gt;In &lt;code&gt;settings.py&lt;/code&gt;, update the &lt;code&gt;DATABASES&lt;/code&gt; section:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;DATABASES&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;default&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;ENGINE&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;mssql&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;NAME&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;my-db&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;USER&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;&amp;lt;admin-user&amp;gt;&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;PASSWORD&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;&amp;lt;admin-password&amp;gt;&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;HOST&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;&amp;lt;server-name&amp;gt;.database.windows.net&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;PORT&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;''&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;OPTIONS&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;driver&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;ODBC Driver 17 for SQL Server&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h4&gt;
  
  
  4. Make Migrations and Migrate
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python manage.py makemigrations
python manage.py migrate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h4&gt;
  
  
  5. Run the Server
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python manage.py runserver
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;p&gt;And that's it! Your Django project is now integrated with Azure SQL🎉. &lt;/p&gt;

&lt;h3&gt;
  
  
  Additional Resources:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://learn.microsoft.com/en-us/samples/azure-samples/azure-sql-db-django/azure-sql-db-django/?wt.mc_id=studentamb_264449" rel="noopener noreferrer"&gt;Azure SQL Documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/microsoft/mssql-django" rel="noopener noreferrer"&gt;mssql-django GitHub Repository&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Happy coding! 🚀&lt;/p&gt;




&lt;h3&gt;
  
  
  Useful Links
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://learn.microsoft.com/en-us/samples/azure-samples/azure-sql-db-django/azure-sql-db-django?wt.mc_id=studentamb_264449" rel="noopener noreferrer"&gt;Creating REST API with Python, Django, and Azure SQL&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://devblogs.microsoft.com/azure-sql/create-rest-api-in-python-with-django-using-the-django-rest-framework-and-azure-sql/?wt.mc_id=studentamb_264449" rel="noopener noreferrer"&gt;Create REST API in Python with Django and Azure SQL&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://learn.microsoft.com/en-us/azure/app-service/tutorial-python-postgresql-app?wt.mc_id=studentamb_264449" rel="noopener noreferrer"&gt;Deploy Python (Django/Flask) App with PostgreSQL on Azure&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://learn.microsoft.com/en-us/azure/dms/migration-using-azure-data-studio?wt.mc_id=studentamb_264449" rel="noopener noreferrer"&gt;Azure SQL Migration with Data Studio&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/azure-samples/azure-sql-db-django" rel="noopener noreferrer"&gt;Azure SQL Django Sample on GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;




</description>
      <category>django</category>
      <category>azure</category>
      <category>python</category>
      <category>cloud</category>
    </item>
  </channel>
</rss>
