diff --git a/blog/templates/blog/base.html b/blog/templates/blog/base.html
index 6e430cc..0ff7acd 100644
--- a/blog/templates/blog/base.html
+++ b/blog/templates/blog/base.html
@@ -1,4 +1,4 @@
-{% load staticfiles %}
+{% load static %}
{{ BLOG_SITE_NAME }}
diff --git a/blog/urls.py b/blog/urls.py
index 7382f36..ade00b6 100644
--- a/blog/urls.py
+++ b/blog/urls.py
@@ -1,11 +1,11 @@
-from django.conf.urls import url
+from django.urls import re_path as url
from django.contrib.auth import views as auth_views
from . import views
urlpatterns = [
url(r'^$', views.post_list, name='post_list'),
- url(r'^login/$', auth_views.login, {'template_name': 'blog/login.html'}, name='login'),
+ url(r'^login/$', auth_views.LoginView.as_view(), {'template_name': 'blog/login.html'}, name='login'),
url(r'^post/(?P\d+)/$', views.post_detail, name='post_detail'),
url(r'^post/(?P\d+)/edit/$', views.post_edit, name='post_edit'),
url(r'^post/new/$', views.post_new, name='post_new'),
diff --git a/katacoda/urls.py b/katacoda/urls.py
index 01d56f9..22ff84f 100644
--- a/katacoda/urls.py
+++ b/katacoda/urls.py
@@ -14,7 +14,8 @@
2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls'))
"""
-from django.conf.urls import include, url
+from django.urls import include
+from django.urls import re_path as url
from django.contrib import admin
from django.conf.urls.static import static
diff --git a/requirements.txt b/requirements.txt
index 3ac04f9..8adcf55 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,13 +1,12 @@
-certifi==2018.1.18
+certifi==2022.12.7
chardet==3.0.4
click==6.7
dj-database-url==0.4.2
-Django==2.0.13
+Django==4.2.16
idna==2.6
-mod-wsgi==4.6.6
-Pillow==5.0.0
+mod-wsgi==4.9.3
+Pillow==11.0.0
psycopg2==2.8.6
-pytz==2017.3
+pytz==2024.2
requests==2.22.0
schedule==0.5.0
-urllib3==1.25.3