0% found this document useful (0 votes)
16 views25 pages

Django

The document provides a comprehensive guide on using Django, detailing the Model View Template (MVT) architecture, project setup, and app creation. It covers template rendering, URL routing, and the integration of Bootstrap for frontend design, along with examples of views and HTML code. Additionally, it discusses database management and user authentication within Django applications.

Uploaded by

hemaruppap23ec
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views25 pages

Django

The document provides a comprehensive guide on using Django, detailing the Model View Template (MVT) architecture, project setup, and app creation. It covers template rendering, URL routing, and the integration of Bootstrap for frontend design, along with examples of views and HTML code. Additionally, it discusses database management and user authentication within Django applications.

Uploaded by

hemaruppap23ec
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

DJANGO

TWAD MODEL:
Model View Controller (MVC)
Model View Template (MVT) :
 in python already template available
 we have studied unstructured
 java, python has mvc
 model-job hotel-field ,analysis
 view-url
 -controllers: data how will run-database-backend-frontend

MVC concept: json web token(JWT)- used for Authentication


database inbuilt-mvt

//MVT MODEL
(1) client (frontend) -request - web server(backend) -process -
database - result(respond)-client
(2) client - HTTPRequest(Hypertext Transfer Protocol Secure) -
DJANGO - URLs - views –
1. models(read & write data) - database
2. templates(user) -HTTPResponse - client
DJANGO: (flask)
python library(server based programming language)
backend in-built frame works
web application
1. project //start project
2. app //start app
[Link]-database,application creation

//DJANGO PROJECT//:
1) new folder - venv set up
2) py -m pip install django
version => django-admin --version
3) Create project file --> django-admin startproject myfile . (mfile-
project name)
4) To run django projects --> python [Link] runserver
to open template -->ctrl + click the url
5) To create app for projects:
1. application
2. modules
3. python [Link] startapp myapp (myapp - application
name)
4. installed apps - [Link] --> 'app_name',
6) Template rendering:
1. code to new treminal -->python [Link] startup Frontend
2. inside frontend folder -->create New Folder --
>templates(Name As)
3. remove file in frontend --
>[Link],[Link],[Link],[Link]&migration
4. settings file add below comments --> Installed
App=["Frontend",]
5. create an html file inside the template -->Create [Link]
file

1. new folder (templates)in my file and(inside the templates)


[Link] file inside ,write any html code
to run html go to [Link] ==> def HomePage(request):
return render(request,'[Link]')
2. go to [Link] ==>from [Link] import admin
from [Link] import path,include
urlpatterns = [
path('admin/', [Link]),
path('myapp/',include('[Link]'))
]
3. go to myapp and create [Link] ==>from [Link] import path
from .views import *
urlpatterns=[path('home/',HomePage),]
4. the run ==>python [Link] runserver , ctrl + click link --
>[Link]
//ALITER METHOD
1) venv set up
2) pip install django
3) django-admin startproject myproject .(project folder)
[python startproject (application folder) [Link] [Link]]
4) python [Link] startapp backend
5) python [Link] startapp frontend
6) myproject - [Link] - installed app =["backend","frontend"]
7) backend - [Link] -->def HomePage(request):
return render(request,"[Link]")
8) frontend - delete
[Link],[Link],[Link],test,[Link](_init__.py,[Link])
9) myproject - [Link] --> from [Link] import admin
from [Link] import path,include
urlpatterns = [
path('admin/', [Link]),
path('mypro/',include('[Link]'))
]
10) create new file as [Link] in backend -->from [Link] import
path
from .views import *
urlpatterns=[path('home/',HomePage),]
11) frontend create (new folder) templates - create (new file)
[Link] [dj - symbol]
<h1> my application </h1>
12) run python [Link] runserver , ctrl + click link --
>[Link]

//CODE IN DJANGO USING HTML


//print
name="nive'
<p1>{{name}}</p1>

//if-else
{%if a==10%}
{{ }}
{%else%}
{{ }}

//for loop
{% for %}
.
.
.
{%end for%}

//EXAMPLES
1)[Link]
from [Link] import render
def HomePage(request):
data={
"name":"nive",
}
return render(request,'[Link]',data)

then [Link]
<h1>{{name}}</h1>

2)[Link]
from [Link] import render
def HomePage(request):
data={
"name":"nive",
"number":[1,2,3,4,5],
"role": "admin"
}
return render(request,'[Link]',data)

then [Link]
{% if role == "admin" %}
<h1>welcome {{name}}</h1>
{% else %}
<h1>welcome as a guest</h1>
{% endif %}
3)for loop
{% for i in number %} {{i}} <br />
{% endfor %}

//FRONTEND :
BOOTSTRAP
 frame of css
 mobile responsibility
 columns allocations
 colors have different names
 red : danger
 green : success
 orange : warning
 lite blue : information
 blue : primary
 grey : secondary
 white : light
 black : dark

//BOOTSTRAP INSIDE DJANGO


1) chrome - bootstrap - copy the #include vis CDV - 1st link

2) place above the title tag


<link
href="[Link]
[Link]" rel="stylesheet" integrity="sha384-
QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0J
MhjY6hW+ALEwIH" crossorigin="anonymous">
3) paste above the body tag
<script
src="[Link]
[Link]" integrity="sha384-
YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIds
lK1eN7N6jIeHz" crossorigin="anonymous"></script>

4) copy button in bootstrap button and paste in below the body


<button type="button" class="btn btn-primary">Primary</button>

5) copy the navbar component and paste instead of button


<nav class="navbar navbar-expand-lg navbar-light bg-light">
<div class="container-fluid">
<a class="navbar-brand" href="#">Navbar</a>
<button
class="navbar-toggler"
type="button"
data-toggle="collapse"
data-target="#navbarSupportedContent"
aria-controls="navbarSupportedContent"
aria-expanded="false"
aria-label="Toggle navigation"
>
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse"
id="navbarSupportedContent">
<ul class="navbar-nav mr-auto mb-2 mb-lg-0">
<li class="nav-item active">
<a class="nav-link" href="/mypro/home/">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/mypro/about/">About</a>
</li>
<li class="nav-item dropdown">
<a
class="nav-link dropdown-toggle"
href="/mypro/contact/"
id="navbarDropdown"
role="button"
data-toggle="dropdown"
aria-haspopup="true"
aria-expanded="false"
>
Contact
</a>
<div class="dropdown-menu" aria-
labelledby="navbarDropdown">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="#">Something else here</a>
</div>
</li>
<li class="nav-item">
<a class="nav-link" href="/mypro/services/">Services</a>
</li>
</ul>
<!-- Adjusted Search Bar -->
<form class="form-inline d-flex w-50">
<input
class="form-control form-control-lg flex-grow-1"
type="search"
placeholder="Search"
aria-label="Search"
/>
<button class="btn btn-outline-success btn-lg ml-2"
type="submit">
Search
</button>
</form>
</div>
</div>
</nav>
6) frontend template create 3 files
//[Link] -
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-
scale=1.0" />
<title>Document</title>
</head>
<body>
<h1>about page</h1>
</body>
</html>

//[Link] -
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-
scale=1.0" />
<title>Document</title>
</head>
<body>
<h1>contact page</h1>
</body>
</html>

//[Link] -
<!DOCTYPE html>
<html lang="en">
<head>
<title>Document</title>
</head>
<body>
<h1>services page</h1>
</body>
</html>

//[Link]
def ServicesPage(request):
return render(request,'[Link]')
def AboutPage(request):
return render(request,'[Link]')
def ContactPage(request):
return render(request,'[Link]')

//[Link]
from [Link] import path
from .views import *
urlpatterns=[path('home/',HomePage),
path('about/',AboutPage),
path('services/',ServicesPage),
path('contact/',ContactPage),]

INHERITANCE IN DJNAGO: - template inheritance


1. extends
2. include
7) create new file [Link] in templates and paste the [Link]
code
<!DOCTYPE html>
<html lang="en">
<head>
<link

href="[Link]
[Link]"
rel="stylesheet"
integrity="sha384-
QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0J
MhjY6hW+ALEwIH"
crossorigin="anonymous"
/>
<title>Document</title>
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<a class="navbar-brand" href="#">Navbar</a>
<button
class="navbar-toggler"
type="button"
data-toggle="collapse"
data-target="#navbarSupportedContent"
aria-controls="navbarSupportedContent"
aria-expanded="false"
aria-label="Toggle navigation"
>
<span class="navbar-toggler-icon"></span>
</button>

<div class="collapse navbar-collapse"


id="navbarSupportedContent">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link" href="#"
>Home <span class="sr-only">(current)</span></a
>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item dropdown">
<a
class="nav-link dropdown-toggle"
href="#"
id="navbarDropdown"
role="button"
data-toggle="dropdown"
aria-haspopup="true"
aria-expanded="false"
>
Dropdown
</a>
<div class="dropdown-menu" aria-
labelledby="navbarDropdown">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="#">Something else
here</a>
</div>
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#">Disabled</a>
</li>
</ul>
<form class="form-inline my-2 my-lg-0">
<input
class="form-control mr-sm-2"
type="search"
placeholder="Search"
aria-label="Search"
/>
<button class="btn btn-outline-success my-2 my-sm-0"
type="submit">
Search
</button>
</form>
</div>
</nav>
<script

src="[Link]
[Link]"
integrity="sha384-
YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIds
lK1eN7N6jIeHz"
crossorigin="anonymous"
></script>
</body></html>
8) [Link] <nav> bar below
{% block contend %} {% endblock %}
then delete the [Link] code

//[Link]
{% extends "[Link]" %} {% block contend %}
<h1>Home Page</h1>
{% endblock %} {% block contend %}
<h1>About Page</h1>
{% endblock %} {% block contend %}
<h1>Services Page</h1>
{% endblock %} {% block contend %}
<h1>Contact Page</h1>
{% endblock %}

//delete nav bar in [Link]


create new file in templates as [Link]
cut the navbar in [Link] and include
{% include "[Link]" %} {% block content %} {% endblock %}

<nav class="navbar navbar-expand-lg navbar-light bg-light">


<a class="navbar-brand" href="#">Navbar</a>
<button
class="navbar-toggler"
type="button"
data-toggle="collapse"
data-target="#navbarSupportedContent"
aria-controls="navbarSupportedContent"
aria-expanded="false"
aria-label="Toggle navigation"
>
<span class="navbar-toggler-icon"></span>
</button>

<div class="collapse navbar-collapse"


id="navbarSupportedContent">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link" href="/mypro/home/"
>Home <span class="sr-only">(current)</span></a
>
</li>
<li class="nav-item">
<a class="nav-link" href="/mypro/about/">About</a>
</li>
<li class="nav-item dropdown">
<a
class="nav-link dropdown-toggle"
href="/mypro/contact/"
id="navbarDropdown"
role="button"
data-toggle="dropdown"
aria-haspopup="true"
aria-expanded="false"
>
Contact
</a>
<div class="dropdown-menu" aria-
labelledby="navbarDropdown">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="#">Something else here</a>
</div>
</li>
<li class="nav-item">
<a class="nav-link" href="/mypro/services/">Services</a>
</li>
</ul>
<form class="form-inline my-2 my-lg-0">
<input
class="form-control mr-sm-2"
type="search"
placeholder="Search"
aria-label="Search"
/>
<button class="btn btn-outline-success my-2 my-sm-0"
type="submit">
Search
</button>
</form>
</div>
</nav>

//DATABSE :
//python [Link] migrate - then install sqlite viewer

//TO ADD DATABSE


[Link] - product (database name)
create db always in model
1) To create database - python [Link] migrate
2) python [Link] createsuperuser
o/p: password : NIVEdha5
run as - python [Link] createsuperuser
Username (leave blank to use 'lenovo'): admin1
Email address: nivedhaj23cs@[Link]
Password:
Password (again):
The password is too similar to the email address.
Bypass password validation and create user anyway? [y/N]: y
Superuser created successfully.
then python [Link] runserver -[Link]
give id and password

3) [Link] : -
from [Link] import models
class Product([Link]):
product_name=[Link](max_length=100,null=True)
product_price=[Link](default=0)
product_code=[Link](max_length=100,null=True)
gst=[Link](defualt=0)

4) then run as -python [Link] makemigrations (to add database)


check in pyache in migrations
5) python [Link] migrate - it create backend_product in dbsqlite

6) to apply changes
//[Link]
from [Link] import models
class Product([Link]):
product_name=[Link](max_length=100,null=True)
product_price=[Link](default=0)
product_code=[Link](max_length=100,null=True)
gst=[Link](default=0)
seail_no=[Link](default=0)

python [Link] makemigrations


python [Link] migrate

7) [Link]
from [Link] import admin
from .models import *
[Link](Product)

python [Link] runserver

8) [Link]
class Admin([Link]):
username=[Link](max_length=100,null=True)
password=[Link](max_length=100,null=True)
class Staff([Link]):
username=[Link](max_length=100,null=True)
password=[Link](max_length=100,null=True)

9) [Link]
[Link](Product)
[Link](Admin)
[Link](Staff)
python [Link] makemigrations
python [Link] migrate
python [Link] runserver

10) product name


product object(1) & product object(2) 1 , and 2 and click save
//to view product names - [Link]
def __str__(self):
return self.product_name
//to view aling with product code
def __str__(self):
return self.product_name + " " + self.product_code
//we can add new name and chnage and delete

11) to view the name in frontend - create new file in frontend inside
the templates - add_products.html
{% extends "[Link]" %} {% block content %}
<h1>Add Product</h1>
{% endblock %}

//[Link]
def ProductPage(request):
return render(request,"add_products.html")
//[Link]
path('addproduct/',ProductPage),

//backend - create new file as [Link]


in [Link]
from [Link] import ModelForm
from .models import *
class UserForm(ModelForm):
class Meta:
model= Product
fields='__all__'

//[Link]
from .forms import *
def ProductPage(request):
product_page={"product_form": UserForm(),}
return render(request,"add_products.html")

//ad_products.html
{% extends "[Link]" %} {% block content %}
<h1>Add Product</h1>
<form>{{product_form}}</form>
{% endblock %}

//[Link]
def ProductPage(request):
product_page={"product_form": UserForm(),}
return render(request,"add_products.html", product_page)

12) [Link]
{% extends "[Link]" %} {% block content %}
<h1>Add Product</h1>
<form acion=" " method="POST">
{% csrf_token %} {{product_form}}
<input type="submit" value="Add Product" />
</form>
{% endblock %}

//to print datas [Link]


def ProductPage(request):
product_page={"product_form": UserForm(),}
if [Link] == 'POST':
product_form= UserForm([Link])
if product_form.is_valid():
product_form.save()
return render(request, "add_products.html", product_page)

You might also like