json-to-sql-api

objective

This project is a simple API that converts JSON to SQL.

  1. create environment
python -m venv env
  1. activate environment

windows:

env\Scripts\activate

linux:

source env/bin/activate
  1. install requirements
pip install -r requirements.txt
  1. startproject
django-admin startproject core .
  1. runserver
python manage.py runserver
  1. migrate
python manage.py migrate
  1. createsuperuser
python manage.py createsuperuser
  1. startapp
python manage.py startapp api
  1. add app to settings.py
INSTALLED_APPS = [
    'api.apps.ApiConfig',
]
  1. api models
from django.db import models

class Smartphones(models.Model):
    price = models.CharField(max_length=255)
    img_url = models.CharField(max_length=255)
    color = models.CharField(max_length=255)
    ram = models.CharField(max_length=255)
    memory = models.CharField(max_length=255)
    name = models.CharField(max_length=255)
    model = models.CharField(max_length=255)

    def __str__(self):
        return self.name
  1. add api models to admin.py
from django.contrib import admin
from .models import Smartphones

admin.site.register(Smartphones)
  1. make migrations
python manage.py makemigrations
  1. migrate
python manage.py migrate

json structure

The JSON structure is as follows:

{
    "apple": {
        "1": {
            "price": "14 299 000 so'm",
            "img_url": "https://assets.asaxiy.uz/product/items/desktop/2b44928ae11fb9384c4cf38708677c482022091716063124908j3O8hyVfPs.jpg.webp",
            "color": "Purple",
            "ram": "6",
            "memory": "128",
            "name": "iPhone 14 Pro",
            "model": "Apple"
        }
    "samsumg": {
        "1": {
            "price": "14 299 000 so'm",
            "img_url": "https://assets.asaxiy.uz/product/items/desktop/2b44928ae11fb9384c4cf38708677c482022091716063124908j3O8hyVfPs.jpg.webp",
            "color": "Purple",
            "ram": "6",
            "memory": "128",
            "name": "iPhone 14 Pro",
            "model": "Apple"
        }
    }
}

sql structure

  • Smartphones table
column name data type
id int
price varchar
img_url varchar
color varchar
ram varchar
memory varchar
name varchar
model varchar

endpoints

method endpoint description
POST /api/add adds product to sql database
GET /api/get/ gets product by id from sql database
GET /api/get/all gets all products from sql database
DELETE /api/delete/ deletes product by id from sql database
PUT /api/update/ updates product by id from sql database

startproject

python manage.py startproject core .

startapp

python manage.py startapp api