Skip to content

Commit 3db8201

Browse files
committed
Add Movie_News blog project
1 parent 4ab81f4 commit 3db8201

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+995
-0
lines changed

Movie_News/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.env

Movie_News/accounts/__init__.py

Whitespace-only changes.

Movie_News/accounts/admin.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
from django.contrib import admin
2+
3+
# Register your models here.

Movie_News/accounts/apps.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
from django.apps import AppConfig
2+
3+
4+
class AccountsConfig(AppConfig):
5+
default_auto_field = 'django.db.models.BigAutoField'
6+
name = 'accounts'

Movie_News/accounts/migrations/__init__.py

Whitespace-only changes.

Movie_News/accounts/models.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
from django.db import models
2+
3+
# Create your models here.

Movie_News/accounts/tests.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
from django.test import TestCase
2+
3+
# Create your tests here.

Movie_News/accounts/urls.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
from django.urls import path
2+
from . import views
3+
4+
app_name = "accounts"
5+
urlpatterns = [
6+
path('login/', views.loginview, name="login"),
7+
path('signup/', views.signupview, name="signup"),
8+
path('logout/', views.logoutview, name="logout")
9+
]

Movie_News/accounts/views.py

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
from django.shortcuts import render, redirect
2+
from django.contrib.auth import authenticate, login, logout
3+
from django.contrib.auth.models import User
4+
5+
# Create your views here.
6+
def loginview(request):
7+
if request.method == "POST":
8+
username = request.POST["username"]
9+
password = request.POST["password"]
10+
user = authenticate(request, username=username, password=password)
11+
if user:
12+
login(request, user)
13+
return redirect("blog:index")
14+
else:
15+
error_message = "Invalid username or password"
16+
return render(request, "login.html", {"error_message": error_message})
17+
return render(request, "login.html")
18+
19+
def signupview(request):
20+
if request.method == "POST":
21+
username = request.POST.get("username").strip()
22+
password = request.POST.get("password")
23+
confirm_password = request.POST["confirm_password"]
24+
25+
if not username or not password or not confirm_password:
26+
return render(request, "signup.html", {
27+
"error_message": "All fields are required."
28+
})
29+
30+
if User.objects.filter(username=username).exists():
31+
return render(request, "signup.html", {
32+
"error_message": "User already exists"
33+
})
34+
35+
36+
if password == confirm_password:
37+
user = User.objects.create_user(username = username, password = password)
38+
user.save()
39+
login(request, user)
40+
return redirect("blog:index")
41+
else:
42+
error_message = "Passwords do not match!"
43+
return render(request, "signup.html", {"error_message": error_message})
44+
45+
return render(request, "signup.html")
46+
47+
48+
def logoutview(request):
49+
logout(request)
50+
return redirect("blog:index")

Movie_News/blog/__init__.py

Whitespace-only changes.

0 commit comments

Comments
 (0)