CRUD Archives - Tech Insights Unveiling Tomorrow's Tech Today, Where Innovation Meets Insight Mon, 18 Jan 2021 12:30:14 +0000 en-US hourly 1 https://wordpress.org/?v=6.6.2 https://i0.wp.com/reactconf.org/wp-content/uploads/2023/11/cropped-reactconf.png?fit=32%2C32&ssl=1 CRUD Archives - Tech Insights 32 32 230003556 Execute the CRUD Operation in Django with SQLite Database https://reactconf.org/how-to-execute-the-crud-operation-in-django/ https://reactconf.org/how-to-execute-the-crud-operation-in-django/#respond Mon, 18 Jan 2021 12:30:14 +0000 http://labpys.com/?p=246 In this tutorial, we will learn how to do CRUD Operations using Django with SQLite Database. In this tutorial, we will Create, Retrieve, Update, and delete records from a database …

The post Execute the CRUD Operation in Django with SQLite Database appeared first on Tech Insights.

]]>
In this tutorial, we will learn how to do CRUD Operations using Django with SQLite Database. In this tutorial, we will Create, Retrieve, Update, and delete records from a database table. So, we will see a step-by-step procedure to do this.

After Creating the Django App let’s create a model that contains table name and fields

http://labpys.com/how-to-create-login-page-using-django-python/

models.py

from django.db import models
from Django import forms 

class tbl_Companydetails(models.Model):
  #  Id = models.IntegerField() 
    companyName =  models.CharField(max_length = 150)
    Address = models.CharField(max_length = 500)
    contactNo = models.CharField(max_length=15)
    establisheddate = models.DateField(null=True, blank=True)
    websitelink = models.CharField(max_length=50,default='')
    emailaddress = models.CharField(max_length=50,default='')   
  #  companylogo =models.FileField()

    def __str__(self):
        return self.companyName
    ddlcompanyobjects = models. Manager()

After creating model then create forms.py file

from django import forms
from crispy_forms.helper import FormHelper
from crispy_forms.layout import Layout, Div, Submit, Row, Column, Field

from .models import tbl_Companydetails

class Companymaster(forms.ModelForm):
    class Meta:
        model = tbl_Companydetails
        fields=['companyName','Address','contactNo','establisheddate','websitelink','emailaddress']

creating model execute commands  

python manage.py makemigrations

python manage.py migrate

Then create a method to retrieve and insert data in a database table using view.

Views.py

from django.shortcuts import render,redirect
from django.contrib.auth import login,authenticate
from .models import tbl_Authentication,tbl_Companydetails
from .forms import Companymaster
from django.shortcuts import render, redirect ,get_object_or_404 
from django.contrib import messages 

def CreatecompanyNew(request):
    ddlcompanyobjects= tbl_Companydetails.ddlcompanyobjects.all()

    if request.method == 'POST':
        form = Companymaster(request.POST)
        print(form.errors,form)
        if form.is_valid(): 
            user = form.save(commit=False)                
            user.save()                
            return render(request,'company.html',{'form':form,'ddlcompanyobjects':ddlcompanyobjects})
    else:
        form = Companymaster()
    return render(request,'company.html',{'form':form,'ddlcompanyobjects':ddlcompanyobjects})

edits existing records

def Editcompany(request, id):      
    ddlcompanyobjects = tbl_Companydetails.ddlcompanyobjects.get(id=id)      
    return render(request,'EditCompany.html', {'ddlcompanyobjects':ddlcompanyobjects})  

 
def Updatecompany(request, id):
        print('t')          
        obj= get_object_or_404(tbl_Companydetails, id=id)       
        form = Companymaster(request.POST, instance= obj)
        context= {'form': form}
        print(obj)
        if form.is_valid():
            ddlcompanyobjects = tbl_Companydetails.ddlcompanyobjects.all()               
            user = form.save(commit=False)      
            user.save()       
            messages.success(request, "You successfully updated the Data")
            context= {'form': form}                           
            return render(request, 'company.html',{'form':form,'ddlcompanyobjects':ddlcompanyobjects})
        else:
            context= {'form': form,
                           'error': 'The Data  was not updated successfully.'}
            return render(request,'company.html' , context)

Delete a record in the table

def Deletecompany(request, id): 
    ddlcompanyobjects = tbl_Companydetails.ddlcompanyobjects.get(id=id)       
    ddlcompanyobjects.delete()
    return redirect('/CreatecompanyNew')

After that  add the path to urls.py files

from django.urls import path
from . import views

urlpatterns = [
    path("",views.base,name="base"),
 

    path('CreatecompanyNew/',views.CreatecompanyNew,name='CreatecompanyNew'),
    path('Editcompany/<int:id>', views.Editcompany,name="Editcompany"),
    path('Updatecompany/<int:id>', views.Updatecompany,name="Updatecompany"), 
    path('Deletecompany/<int:id>', views.Deletecompany,name="Deletecompany"), 
    
]

Once writing views and models is over then move to the templates folder to create html page named Company.html, here I am using Django with boostrap4.

{%  block title %} Company {%  endblock %} 
 
{% block content %} 

<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">

<form method="POST"  enctype = "multipart/form-data" >
{% csrf_token %}
<div class="container shadow-lg">
<div class="row">
        <div class="col-md-12 col-xs-12">
          <div class="x_panel">
            <div class="x_title">
              <h2>Company Details</h2>
           
              <div class="clearfix"></div>
            </div> 
            <div class="row">
                  <div class="form-group col-md-6 mb-0">
                    <label class="control-label col-md-6 col-sm-3 col-xs-12" for="name">Company Name <span class="required">*</span>
                    </label>
                    <input type="text" name="companyName" class="form-control" pattern="^[^\s][\w\W]*$" autocomplete="off"
                    title="Enter Company Name. Dont Use Space At Start and Special Characters, You can use a combination of Alphabets and Numbers."
                    minlength="1" maxlength="50" onkeypress="return (event.charCode > 64 && event.charCode < 91) || (event.charCode > 96 && event.charCode < 123) || (event.charCode == 32)"/> 
                   </div>

                   <div class="form-group col-md-6 mb-0">
                    <label class="control-label col-md-3 col-sm-3 col-xs-12" for="name">Address<span class="required">*</span>
                    </label>
                    <input type="text" name="Address" class="form-control" /> 
                   </div>      
            </div>          
            <div class="row">
                   <div class="form-group col-md-6 mb-0">
                    <label class="control-label col-md-3 col-sm-3 col-xs-12" for="name">Contact No<span class="required">*</span>
                    </label>
                    <input type="text" name="contactNo" class="form-control" pattern="[0-9]{10}"
                               autocomplete="off"
                               title="Enter Contact Number."
                               minlength="10" maxlength="10"
                        onkeypress="return (event.charCode >= 48 && event.charCode <= 57)"/> 
                   </div>

                   <div class="form-group col-md-6 mb-0">
                    <label class="control-label col-md-4 col-sm-3 col-xs-12" for="name">Established date<span class="required">*</span>
                    </label>
                    <input type="date" name="establisheddate" class="form-control" /> 
                   </div>
                            
            </div>

            <div class="row">
              <div class="form-group col-md-6 mb-0">
               <label class="control-label col-md-3 col-sm-3 col-xs-12" for="name">Website URL<span class="required">*</span>
               </label>
               <input type="text" name="websitelink" class="form-control" /> 
              </div>

              <div class="form-group col-md-6 mb-0">
               <label class="control-label col-md-3 col-sm-3 col-xs-12" for="name">Email address<span class="required">*</span>
               </label>
               <input type="text" name="emailaddress" class="form-control" /> 
              </div>
                       
       </div>

       <div class="row"> 
       </div>
       <br/>
            <div class="form-group">
              <div class="col-md-9 col-sm-9 col-xs-12 col-md-offset-3">
                <button type="submit" class="btn btn-success">Submit</button>
               <button class="btn btn-primary" type="reset">Reset</button>               
              </div>
            </div>
          </div>

          <div class="x_content">
            <div id="datatable_wrapper" class="dataTables_wrapper form-inline dt-bootstrap no-footer">
              <div class="row">
                <div class="col-sm-12">
                  <table id="datatable" class="table table-striped table-bordered dataTable no-footer"
                    role="grid" aria-describedby="datatable_info">            

        <thead>
            <tr role="row">
              <th hidden="true">SLNO</th>
              <th>Company Name</th>
              <th>Address</th>
              <th>Contact No</th>
              <th>Established Date</th>
              <th>Email</th>
              <th>Website Url</th>
              <th>Action</th>              
            </tr>
          </thead>
      
      <tbody>
        {% for company in ddlcompanyobjects %}
          <tr style="background:#f8fcff">
            <td class="align-middle" hidden="true">{{ company.id   }}</td>
            <td class="align-middle" >{{ company.companyName   }}</td>
            <td class="align-middle">{{ company.Address  }}</td> 
            <td class="align-middle">{{ company.contactNo  }}</td> 
            <td class="align-middle">{{ company.establisheddate  }}</td> 
            <td class="align-middle">{{ company.emailaddress   }}</td> 
            <td class="align-middle">{{company.websitelink}} </td>
            <td>
                <a  href="/Editcompany/{{ company.id }}"><i class="fa fa-pencil"></i>Edit</a>
                 <a href="/Deletecompany/{{ company.id }}"><i class="fa fa-trash-o"></i>Delete</a> 
              </td>
       
          </tr>

        {% empty %}
          <tr>
            <td class="bg-light text-center font-italic" colspan="4">No Data</td>
          </tr>
        {% endfor %}
      </tbody>
    </table>
          </div>
        </div>
            </div>
          </div>
        </div>
</div> 
</div>
</form>
{% endblock %}

Editcompany.html

{%  block title %} Company {%  endblock %}

<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous"> 

{% block content %}
 
 
<form method="POST"  action="/Updatecompany/{{ ddlcompanyobjects.id }}" enctype = "multipart/form-data" >
{% csrf_token %}
<div class="container shadow-lg">
<div class="row">
        <div class="col-md-12 col-xs-12">
          <div class="x_panel">
            <div class="x_title">
              <h2>Company Details</h2>
           
              <div class="clearfix"></div>
            </div> 
            <div class="row">
                  <div class="form-group col-md-6 mb-0">
                    <label class="control-label col-md-6 col-sm-3 col-xs-12" for="name">Company Name <span class="required">*</span>
                    </label>
                    <input type="text" name="companyName" class="form-control" value="{{ ddlcompanyobjects.companyName }}" 
                    pattern="^[^\s][\w\W]*$" autocomplete="off"
                    title="Enter Company Name. Dont Use Space At Start and Special Characters, You can use a combination of Alphabets and Numbers."
                    minlength="1" maxlength="50" onkeypress="return (event.charCode > 64 && event.charCode < 91) || (event.charCode > 96 && event.charCode < 123) || (event.charCode == 32)"/> 
                   </div>

                   <div class="form-group col-md-6 mb-0">
                    <label class="control-label col-md-3 col-sm-3 col-xs-12" for="name">Address<span class="required">*</span>
                    </label>
                    <input type="text" name="Address" class="form-control" value="{{ ddlcompanyobjects.Address }}"/> 
                   </div>     
            </div>           
                   <div class="row">
                   <div class="form-group col-md-6 mb-0">
                    <label class="control-label col-md-3 col-sm-3 col-xs-12" for="name">Contact No<span class="required">*</span>
                    </label>
                    <input type="text" name="contactNo" class="form-control" value="{{ ddlcompanyobjects.contactNo }}"
                    pattern="[0-9]{10}"
                               autocomplete="off"
                               title="Enter Contact Number."
                               minlength="10" maxlength="10"
                        onkeypress="return (event.charCode >= 48 && event.charCode <= 57)"/> 
                   </div>

                   <div class="form-group col-md-6 mb-0">
                    <label class="control-label col-md-4 col-sm-3 col-xs-12" for="name">Established date<span class="required">*</span>
                    </label>
                    <input type="date" name="establisheddate" class="form-control" value="{{ ddlcompanyobjects.establisheddate|date:"Y-m-d"}}" /> 
                   </div>
                            
            </div>

            <div class="row">
              <div class="form-group col-md-6 mb-0">
               <label class="control-label col-md-3 col-sm-3 col-xs-12" for="name">Website URL<span class="required">*</span>
               </label>
               <input type="text" name="websitelink" class="form-control" value="{{ ddlcompanyobjects.websitelink }}" /> 
              </div>

              <div class="form-group col-md-6 mb-0">
               <label class="control-label col-md-3 col-sm-3 col-xs-12" for="name">Email address<span class="required">*</span>
               </label>
               <input type="text" name="emailaddress" class="form-control" value="{{ ddlcompanyobjects.emailaddress }}"/> 
              </div>
                       

       </div>
       <div class="row">

       
       </div>
        <br/>
            
            <div class="form-group">
              <div class="col-md-9 col-sm-9 col-xs-12 col-md-offset-3">
                <button type="submit" class="btn btn-success">Submit</button>
               <button class="btn btn-primary" type="reset">Reset</button>               
              </div>
            </div>
          </div>
        
        </div>
</div>
</div>
 
</form>
{% endblock %}

then execute command

python manage.py runserver



The post Execute the CRUD Operation in Django with SQLite Database appeared first on Tech Insights.

]]>
https://reactconf.org/how-to-execute-the-crud-operation-in-django/feed/ 0 319