Blog Post

Educator Developer Blog
3 MIN READ

Integrating Azure SQL with Django : A Step-by-Step Guide

sourabhkv's avatar
sourabhkv
Copper Contributor
Sep 27, 2024

Hi👋 I'm Sourabh and student ambassador from Bangalore studying Computer Science from BIT

Integrating Django with Azure SQL

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

 

 

Prerequisites

1. Azure Subscription: Get Azure for Students to receive $100 in credits for 12 months.
2. Django Project: Ensure you have an existing Django project set up.
3. VS Code: Install Visual Studio Code for your code editing needs.

 

Required Packages

 

 

 

pip install django pyodbc mssql-django

 

 

 

 

ODBC Driver installation
To connect Django to Azure SQL, you'll need to install the ODBC driver for SQL Server. The following command installs the ODBC Driver 17 for SQL Server depending on your operating system:

For Ubuntu/Linux:

 

 

 

sudo su
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list > /etc/apt/sources.list.d/mssql-release.list
exit
sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install -y msodbcsql17
sudo apt-get install -y unixodbc-dev

 

 

 

For macOS:

 

 

 

brew tap microsoft/mssql-release https://github.com/Microsoft/homebrew-mssql-release
brew update
brew install --no-sandbox msodbcsql17 mssql-tools

 

 

 

 

For Windows:
You can download and install the driver from Microsoft's website.

Once the driver is installed, your Django project should be able to connect to Azure SQL using the mssql-django package.

 

Why Azure SQL Over SQLite3?

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

Step-by-Step Integration

1. Set Up Azure SQL Database

Deployment option for Azure SQLNote - deployment can also be done through Azure Portal

  • Create a Resource Group:
    az group create -l <location> -n <MyResourceGroup>​
  • Create a SQL Server:
    az sql server create -n <server-name> -l <location> --admin-user <admin-user> --admin-password <admin-password> -g <resource-group>​
  • Create the Database:
    az sql db create -g <resource-group> -s <server-name> -n my-db --service-objective GP_Gen5_2​
  • Allow Your IP in Firewall:
    az sql server firewall-rule create --resource-group <resource-group> --server <server-name> --name AllowMyClientIP --start-ip-address <your_public_ip> --end-ip-address <your_public_ip>​


2. Install Required Packages

 

 

 

pip install django pyodbc mssql-django

 

 

 

 

3. Configure Django Settings

In settings.py, update the DATABASES section:

 

 

 

DATABASES = {
    'default': {
        'ENGINE': 'mssql',
        'NAME': 'my-db',
        'USER': '<admin-user>',
        'PASSWORD': '<admin-password>',
        'HOST': '<server-name>.database.windows.net',
        'PORT': '',
        'OPTIONS': {
            'driver': 'ODBC Driver 17 for SQL Server',
    },
}
}

 

 

 

 

4. Make Migrations and Migrate

 

 

 

python manage.py makemigrations
python manage.py migrate

 

 

 

 

5. Run the Server

 

 

 

python manage.py runserver

 

 

 

 

And that's it! Your Django project is now integrated with Azure SQL :party_popper:.

 

Additional Resources:
- Azure SQL Documentation
- mssql-django GitHub Repository

Happy coding!

 

Useful Links
1. Creating REST API with Python, Django, and Azure SQL
2. Create REST API in Python with Django and Azure SQL
3. Deploy Python (Django/Flask) App with PostgreSQL on Azure
4. Azure SQL Migration with Data Studio
5. Azure SQL Django Sample on GitHub

 

Updated Sep 26, 2024
Version 1.0
No CommentsBe the first to comment