CRUD Operations


urls.py - /path/projectdir/theapp
path('raw-select', views.raw_select, name='raw_select'),
path('raw-update', views.raw_update, name='raw_update'),
path('raw-update', views.raw_update, name='raw_update'),
path('raw-delete', views.raw_delete, name='raw_delete'),

views.py - /path/projectdir/theapp - Django CRUD

def raw_insert(request):
    from django.db import connection, transaction
    cursor = connection.cursor()

    name = 'John'
    email = 'john@gmail.com'
    gender = 'Male'
    age = 21
    admission_date = '2023-05-06'
    percent = 70.45

    sql = "INSERT INTO students (name, email, gender, age, admission_date, percent) VALUES (%s, %s, %s, %s, %s, %s)"
    transaction.commit()
    cursor.execute(sql, (name, email, gender, age, admission_date, percent))
    id = cursor.lastrowid
    return HttpResponse('Inserted'+str(id))

def raw_select(request):
    from django.db import connection
    cursor = connection.cursor()

    sql = "SELECT * FROM students m LIMIT 10"
    cursor.execute(sql)
    students = cursor.fetchall()
    from django.http import JsonResponse
    return JsonResponse({ 'json_students': students }, json_dumps_params={'indent': 4})

def raw_update(request):
    from django.db import connection, transaction
    cursor = connection.cursor()
    old_name = 'John'
    new_name = 'Peter'
    sql = "UPDATE students SET name = %s WHERE name = %s"
    transaction.commit()
    cursor.execute(sql, (new_name, old_name))
    return HttpResponse('Upadated')

def raw_delete(request):
    from django.db import connection, transaction
    cursor = connection.cursor()
    name = 'John'
    sql = "DELETE FROM students WHERE name = %s"
    transaction.commit()
    cursor.execute(sql, (name,))
    return HttpResponse('Deleted')