21oct 2024 Django Project
21oct 2024 Django Project
step4 terminal
pip install django
step5 terminal
django-admin startproject myproject
step7 terminal
python manage.py startapp myapp
step10 myproject/settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myapp',
]
step11myproject/urls.py
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('myapp.urls'))
]
step12myapp/urls.py
path('',views.home,name='home')
]
step13 myapp/views.py
step14 myapp/templates/myapp/home.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
welcome
</body>
</html>
**********************************22oct2024**********************************
step1 myapp/base.html
go to bootstrap
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Bootstrap demo</title>
<link
href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css"
rel="stylesheet" integrity="sha384-
QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH"
crossorigin="anonymous">
</head>
<body>
<h1>Hello, world!</h1>
<script
src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"
integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz"
crossorigin="anonymous"></script>
</body>
</html>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>MindScape</title>
<link
href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css"
rel="stylesheet" integrity="sha384-
QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH"
crossorigin="anonymous">
</head>
<body>
{% include 'myapp/navbar.html' %}
{% block content %}
{% endblock %}
<script
src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"
integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz"
crossorigin="anonymous"></script>
</body>
</html>
step3 home.html
{% extends 'myapp/base.html' %}
{% block content %}
{% endblock %}
step4myapp/navbar.html
step5myapp/navbar.html(modify)
</ul>
<form class="d-flex" role="search">
<input class="form-control me-2" type="search" placeholder="Search" aria-
label="Search">
<button class="btn btn-outline-success" type="submit">Search</button>
</form>
</div>
</div>
</nav>
step6myapp/urls.py
path('',views.home,name='home'),
path('about/',views.about,name='about'),
path('contact/',views.contact,name='contact')
]
step7myapp/views.py
from django.shortcuts import render
# Create your views here.
def home(request):
return render(request,'myapp/home.html')
def about(request):
return render(request,'myapp/about.html')
def contact(request):
return render(request,'myapp/contact.html')
step8myapp/about.html
{% extends 'myapp/base.html' %}
{% block content %}
<h1>welcome to about page</h1>
{% endblock %}
step9myapp/contact.html
{% extends 'myapp/base.html' %}
{% block content %}
<h1>welcome to contact page</h1>
{% endblock %}
step10 myapp/navbar.html
<nav class="navbar navbar-expand-lg bg-body-tertiary">
<div class="container-fluid">
<a class="navbar-brand" href="#">MindScape</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-
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 me-auto mb-2 mb-lg-0">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="{% url 'home'
%}">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'about' %}">About Us</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'contact' %}">Contact Us</a>
</li>
</ul>
<form class="d-flex" role="search">
<input class="form-control me-2" type="search" placeholder="Search" aria-
label="Search">
<button class="btn btn-outline-success" type="submit">Search</button>
</form>
</div>
</div>
</nav>
step11
python manage.py runserver
class Post(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
title = models.CharField(max_length=200)
content = models.TextField()
image = models.ImageField(upload_to='post_images/', null=True, blank=True)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
step2 terminal
pip install pillow
step3 terminal
python manage.py makemigrations
python manage.py migrate
step4
python manage.py runserver
step5 sqlite
https://sqlitebrowser.org/
click download menu
DB Browser for SQLite - Standard installer for 64-bit Windows
******************************25 oct
2024*****************************************************
step1 myapp/admin.py
step2 terminal
step3
python manage.py runserver
step4
localhost:8000/admin
**************************7 nov
2024********************************************************
step1 myproject(outer)/media
step2 cut post_images folder and paste inside media folder
step3 myproject/settings.py
STATIC_URL = 'static/'
MEDIA_URL = '/media/'
MEDIA_ROOT = BASE_DIR / 'media'
step4 myproject/urls.py
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('myapp.urls'))
]
# To serve media files during development
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
step5 myapp/views.py
return render(request,'myapp/home.html',{'ap':ap})
def about(request):
return render(request,'myapp/about.html')
def contact(request):
return render(request,'myapp/contact.html')
step6 bootstrap(cards)
<div class="card" style="width: 18rem;">
<img src="..." class="card-img-top" alt="...">
<div class="card-body">
<h5 class="card-title">Card title</h5>
<p class="card-text">Some quick example text to build on the card title and
make up the bulk of the card's content.</p>
<a href="#" class="btn btn-primary">Go somewhere</a>
</div>
</div>
step6myapp/home.html
{% extends 'myapp/base.html' %}
{% block content %}
<div class="container">
<div class="row">
{% for n in ap %}
<div class="card" style="width: 18rem;">
<img src="{{n.image.url}}" class="card-img-top" alt="...">
<div class="card-body">
<h5 class="card-title">{{n.title }}</h5>
<p class="card-text">{{n.content}}</p>
<p class="card-text">{{n.created_at}}</p>
<p class="card-text">{{n.updated_at}}</p>
<a href="#" class="btn btn-primary">Go somewhere</a>
</div>
</div>
{% endfor %}
</div>
</div>
{% endblock %}
path('',views.home,name='home'),
path('about/',views.about,name='about'),
path('contact/',views.contact,name='contact'),
path('register/',views.register, name='register')
]
step2 myapp/views.py
from django.shortcuts import render
from .models import Post
# Create your views here.
def home(request):
ap=Post.objects.all
return render(request,'myapp/home.html',{'ap':ap})
def about(request):
return render(request,'myapp/about.html')
def contact(request):
return render(request,'myapp/contact.html')
def register(request):
return render(request,'myapp/register.html')
step3myapp/register.html
{% extends 'myapp/base.html' %}
{% block content %}
<h1>welcome to register page</h1>
{% endblock %}
step4 myapp/navbar.html
<nav class="navbar navbar-expand-lg bg-body-tertiary">
<div class="container-fluid">
<a class="navbar-brand" href="#">MindScape</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-
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 me-auto mb-2 mb-lg-0">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="{% url 'home'
%}">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'about' %}">About Us</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'contact' %}">Contact Us</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'register' %}">Signup</a>
</li>
</ul>
<form class="d-flex" role="search">
<input class="form-control me-2" type="search" placeholder="Search" aria-
label="Search">
<button class="btn btn-outline-success" type="submit">Search</button>
</form>
</div>
</div>
</nav>
step5myapp/views.py
from django.shortcuts import render
from .models import Post
from django.contrib.auth.forms import UserCreationForm
# Create your views here.
def home(request):
ap=Post.objects.all
return render(request,'myapp/home.html',{'ap':ap})
def about(request):
return render(request,'myapp/about.html')
def contact(request):
return render(request,'myapp/contact.html')
def register(request):
f=UserCreationForm()
return render(request,'myapp/register.html',{'f':f})
step6myapp/register.html
{% extends 'myapp/base.html' %}
{% block content %}
<div class="container">
<h1>please Signup here</h1>
<form action="" method="post">
{{f.as_p}}
<input type="submit" value="Signup">
</form>
</div>
{% endblock %}