1)pip install Django
django-admin --version
django-admin startproject myproject
cd myproject
-- Create a Django app.
python manage.py startapp hello
---Open settings.py inside the project folder.
Find INSTALLED_APPS and add the app name.
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'hello',
]
---Open hello/views.py
open hello folder create views.py file
from django.http import HttpResponse
def home(request):
return HttpResponse("Hello World")
-----Create a new file hello/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.home),
]
----Open myproject/urls.py
Modify like this:
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('hello.urls')),
]
--Run the Django development server.
python manage.py runserver
--Go to:
http://127.0.0.1:8000/
2)
django-admin startproject xss_project
cd xss_project
python manage.py startapp xssapp
---Add in settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'xssapp',
]
---under xssapp/views.py
from django.shortcuts import render
import html
# vulnerable
def home(request):
name = request.POST.get('name','')
return render(request,'home.html',{'name':name})
# secure
def secure(request):
name = request.POST.get('name','')
name = html.escape(name) # prevent XSS
return render(request,'secure.html',{'name':name})
---xssapp/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.home),
path('secure/', views.secure),
]
-----xss_project /urls.py
from django.urls import path, include
urlpatterns = [
path('', include('xssapp.urls')),
]
---- xssapp/templates/home.html
<h2>Vulnerable Page</h2>
<form method="post">
{% csrf_token %}
<input type="text" name="name">
<button>Submit</button>
</form>
Output: {{ name|safe }}
-----xssapp/templates/secure.html
<h2>Secure Page</h2>
<form method="post">
{% csrf_token %}
<input type="text" name="name">
<button>Submit</button>
</form>
Output: {{ name }}
-----Run the Django development server.
python manage.py runserver
---You will see something like:
Starting development server at http://127.0.0.1:8000/
---For XSS program:
Open → http://127.0.0.1:8000/ (vulnerable page)
Open → http://127.0.0.1:8000/secure/ (safe page)
----- write this
<script>alert("Hacked")</script>
and submit
3)
django-admin startproject weather_project
cd weather_project
python manage.py startapp weather
-----Open settings.py
INSTALLED_APPS = [
...
'weather',
]
----Open weather/views.py
import requests
from django.shortcuts import render
def home(request):
data = {}
error = ""
if request.method == "POST":
city = request.POST.get("city")
api_key = "YOUR_API_KEY"
url = f"https://api.openweathermap.org/data/2.5/weather?q={city}&appid={api_key}&units=metric"
response = requests.get(url)
result = response.json()
if result.get("cod") == 200:
data = {
"city": result["name"],
"temperature": result["main"]["temp"],
"description": result["weather"][0]["description"]
}
else:
error = "Invalid city name"
return render(request, "home.html", {"data": data, "error": error})
-----weather/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.home),
]
----Open weather_project/urls.py
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('weather.urls')),
]
-----Create folder: weather/templates/
Create file: home.html
<!DOCTYPE html>
<html>
<head>
<title>Weather App</title>
</head>
<body>
<h2>Weather App</h2>
<form method="POST">
{% csrf_token %}
<input type="text" name="city" placeholder="Enter city">
<button type="submit">Get Weather</button>
</form>
{% if data.city %}
<h3>City: {{ data.city }}</h3>
<h3>Temperature: {{ data.temperature }} °C</h3>
<h3>Description: {{ data.description }}</h3>
{% endif %}
{% if error %}
<h3 style="color:red">{{ error }}</h3>
{% endif %}
</body>
</html>
python manage.py runserver
4)
django-admin startproject feedback_project
cd feedback_project
python manage.py startapp feedback
----Add in settings.py
INSTALLED_APPS = ['feedback']
-----feedback/models.py
from django.db import models
class Feedback(models.Model):
name = models.CharField(max_length=100)
message = models.TextField()
-----after above
python manage.py makemigrations
python manage.py migrate
-----feedback/views.py
from django.shortcuts import render
from django.http import JsonResponse
from .models import Feedback
def home(request):
data = Feedback.objects.all()
return render(request, "feedback.html", {"data": data})
def add_feedback(request):
if request.method == "POST":
name = request.POST['name']
msg = request.POST['message']
Feedback.objects.create(name=name, message=msg)
return JsonResponse({'name': name, 'message': msg})
-----feedback/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.home),
path('add/', views.add_feedback),
]
------project urls.py
from django.urls import path, include
urlpatterns = [
path('', include('feedback.urls')),
]
----Create folder → feedback/templates/feedback.html
<!DOCTYPE html>
<html>
<head>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<style>
.feedback:nth-child(odd){background:#d9edf7;}
.feedback:nth-child(even){background:#f2f2f2;}
</style>
</head>
<body>
<h2>Student Feedback</h2>
<form id="form">
{% csrf_token %}
<input type="text" name="name" placeholder="Name"><br>
<textarea name="message" placeholder="Feedback"></textarea><br>
<button type="submit">Submit</button>
</form>
<div id="list">
{% for f in data %}
<div class="feedback"><b>{{f.name}}</b>: {{f.message}}</div>
{% endfor %}
</div>
<script>
// focus effect
$("input,textarea").focus(function(){
$(this).css("background","#ffffcc");
});
// ajax submit
$("#form").submit(function(e){
e.preventDefault();
$.ajax({
url:"/add/",
type:"POST",
data:$(this).serialize(),
headers:{'X-CSRFToken':'{{csrf_token}}'},
success:function(res){
// traversing + add new feedback
$("#list").prepend(
"<div class='feedback'><b>"+res.name+"</b>: "+res.message+"</div>"
).children().first().hide().fadeIn();
$("#form")[0].reset();
}
});
});
</script>
</body>
</html>
python manage.py runserver
5)
django-admin startproject feedback_project
cd feedback_project
python manage.py startapp feedback
----Add in settings.py
INSTALLED_APPS = ['feedback']
-----feedback/models.py
from django.db import models
class Feedback(models.Model):
name = models.CharField(max_length=100)
message = models.TextField()
-----after above
python manage.py makemigrations
python manage.py migrate
-----feedback/views.py
from django.shortcuts import render
from django.http import JsonResponse
from .models import Feedback
def home(request):
data = Feedback.objects.all()
return render(request, "feedback.html", {"data": data})
def add_feedback(request):
if request.method == "POST":
name = request.POST['name']
msg = request.POST['message']
Feedback.objects.create(name=name, message=msg)
return JsonResponse({'name': name, 'message': msg})
-----feedback/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.home),
path('add/', views.add_feedback),
]
------project urls.py
from django.urls import path, include
urlpatterns = [
path('', include('feedback.urls')),
]
----Create folder → feedback/templates/feedback.html
<!DOCTYPE html>
<html>
<head>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<style>
.feedback:nth-child(odd){background:#d9edf7;}
.feedback:nth-child(even){background:#f2f2f2;}
</style>
</head>
<body>
<h2>Student Feedback</h2>
<form id="form">
{% csrf_token %}
<input type="text" name="name" placeholder="Name"><br>
<textarea name="message" placeholder="Feedback"></textarea><br>
<button type="submit">Submit</button>
</form>
<div id="list">
{% for f in data %}
<div class="feedback"><b>{{f.name}}</b>: {{f.message}}</div>
{% endfor %}
</div>
<script>
// focus effect
$("input,textarea").focus(function(){
$(this).css("background","#ffffcc");
});
// ajax submit
$("#form").submit(function(e){
e.preventDefault();
$.ajax({
url:"/add/",
type:"POST",
data:$(this).serialize(),
headers:{'X-CSRFToken':'{{csrf_token}}'},
success:function(res){
// traversing + add new feedback
$("#list").prepend(
"<div class='feedback'><b>"+res.name+"</b>: "+res.message+"</div>"
).children().first().hide().fadeIn();
$("#form")[0].reset();
}
});
});
</script>
</body>
</html>
python manage.py runserver
6)
django-admin startproject student_project
cd student_project
python manage.py startapp student
------Add in settings.py
INSTALLED_APPS = ['student']
-----student/models.py
from django.db import models
class Student(models.Model):
usn = models.CharField(max_length=20)
name = models.CharField(max_length=100)
subject_code = models.CharField(max_length=10)
cie_marks = models.IntegerField()
-----
python manage.py makemigrations
python manage.py migrate
----student/views.py
from django.shortcuts import render
from .models import Student
def home(request):
if request.method == "POST":
usn = request.POST['usn']
name = request.POST['name']
sub = request.POST['subject']
marks = request.POST['marks']
Student.objects.create(
usn=usn, name=name,
subject_code=sub, cie_marks=marks
)
return render(request, "form.html")
def low(request):
data = Student.objects.filter(cie_marks__lt=20)
return render(request, "result.html", {"data": data})
------student/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.home),
path('low/', views.low),
]
------project urls.py
from django.urls import path, include
urlpatterns = [
path('', include('student.urls')),
]
------Create folder → student/templates/form.html
<h2>Student Form</h2>
<form method="post">
{% csrf_token %}
USN: <input type="text" name="usn"><br>
Name: <input type="text" name="name"><br>
Subject: <input type="text" name="subject"><br>
Marks: <input type="number" name="marks"><br>
<button type="submit">Submit</button>
</form>
<a href=''>View CIE < 20</a>
------Create folder → student/templates/result.html
<h2>Students with CIE < 20</h2>
{% for s in data %}
<p>{{s.usn}} - {{s.name}} - {{s.subject_code}} - {{s.cie_marks}}</p>
{% endfor %}
python manage.py runserver⚠️Content was pasted as plain text and auto-formatted as a code block. Use the Code Block button in the editor for proper formatting.