Add django-debug-toolbar
This commit is contained in:
parent
9d904da6c0
commit
0e750d1233
4 changed files with 70 additions and 4 deletions
|
|
@ -4,6 +4,7 @@ import os
|
||||||
import sys
|
import sys
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
|
from django.utils import timezone
|
||||||
from dotenv import find_dotenv, load_dotenv
|
from dotenv import find_dotenv, load_dotenv
|
||||||
|
|
||||||
load_dotenv(dotenv_path=find_dotenv(), verbose=True)
|
load_dotenv(dotenv_path=find_dotenv(), verbose=True)
|
||||||
|
|
@ -33,20 +34,29 @@ EMAIL_TIMEOUT = 10
|
||||||
DEFAULT_FROM_EMAIL: str = os.getenv(key="EMAIL_HOST_USER", default="webmaster@localhost")
|
DEFAULT_FROM_EMAIL: str = os.getenv(key="EMAIL_HOST_USER", default="webmaster@localhost")
|
||||||
SERVER_EMAIL: str = os.getenv(key="EMAIL_HOST_USER", default="webmaster@localhost")
|
SERVER_EMAIL: str = os.getenv(key="EMAIL_HOST_USER", default="webmaster@localhost")
|
||||||
USE_X_FORWARDED_HOST = True
|
USE_X_FORWARDED_HOST = True
|
||||||
INTERNAL_IPS: list[str] = ["127.0.0.1", "localhost"]
|
INTERNAL_IPS: list[str] = ["127.0.0.1", "localhost", "192.168.1.143"]
|
||||||
DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField"
|
DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField"
|
||||||
SITE_ID = 1
|
SITE_ID = 1
|
||||||
PASSWORD_HASHERS: list[str] = ["django.contrib.auth.hashers.Argon2PasswordHasher"]
|
PASSWORD_HASHERS: list[str] = ["django.contrib.auth.hashers.Argon2PasswordHasher"]
|
||||||
ROOT_URLCONF = "feedvault.urls"
|
ROOT_URLCONF = "feedvault.urls"
|
||||||
WSGI_APPLICATION = "feedvault.wsgi.application"
|
WSGI_APPLICATION = "feedvault.wsgi.application"
|
||||||
NINJA_PAGINATION_PER_PAGE = 1000
|
NINJA_PAGINATION_PER_PAGE = 1000
|
||||||
|
STATIC_URL = "static/"
|
||||||
|
STATIC_ROOT = BASE_DIR / "static"
|
||||||
|
MEDIA_URL = "media/"
|
||||||
|
MEDIA_ROOT = BASE_DIR / "media"
|
||||||
|
LOGIN_REDIRECT_URL = "/"
|
||||||
|
LOGOUT_REDIRECT_URL = "/"
|
||||||
|
|
||||||
|
|
||||||
# Is True when running tests, used for not spamming Discord when new users are created
|
# Is True when running tests, used for not spamming Discord when new users are created
|
||||||
TESTING: bool = len(sys.argv) > 1 and sys.argv[1] == "test"
|
TESTING: bool = len(sys.argv) > 1 and sys.argv[1] == "test"
|
||||||
|
|
||||||
INSTALLED_APPS: list[str] = [
|
INSTALLED_APPS: list[str] = [
|
||||||
"feedvault.apps.FeedVaultConfig",
|
"feedvault.apps.FeedVaultConfig",
|
||||||
|
"debug_toolbar",
|
||||||
"django.contrib.auth",
|
"django.contrib.auth",
|
||||||
|
"django.contrib.staticfiles",
|
||||||
"django.contrib.contenttypes",
|
"django.contrib.contenttypes",
|
||||||
"django.contrib.sessions",
|
"django.contrib.sessions",
|
||||||
"django.contrib.messages",
|
"django.contrib.messages",
|
||||||
|
|
@ -54,6 +64,7 @@ INSTALLED_APPS: list[str] = [
|
||||||
]
|
]
|
||||||
|
|
||||||
MIDDLEWARE: list[str] = [
|
MIDDLEWARE: list[str] = [
|
||||||
|
"debug_toolbar.middleware.DebugToolbarMiddleware",
|
||||||
"django.middleware.security.SecurityMiddleware",
|
"django.middleware.security.SecurityMiddleware",
|
||||||
"django.contrib.sessions.middleware.SessionMiddleware",
|
"django.contrib.sessions.middleware.SessionMiddleware",
|
||||||
"django.middleware.common.CommonMiddleware",
|
"django.middleware.common.CommonMiddleware",
|
||||||
|
|
@ -120,3 +131,41 @@ TEMPLATES = [
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
# Create data/logs folder if it doesn't exist
|
||||||
|
log_folder: Path = BASE_DIR / "data" / "logs"
|
||||||
|
log_folder.mkdir(parents=True, exist_ok=True)
|
||||||
|
|
||||||
|
LOGGING = {
|
||||||
|
"version": 1,
|
||||||
|
"disable_existing_loggers": False,
|
||||||
|
"handlers": {
|
||||||
|
"console": {
|
||||||
|
"level": "DEBUG",
|
||||||
|
"class": "logging.StreamHandler",
|
||||||
|
},
|
||||||
|
"file": {
|
||||||
|
"level": "DEBUG",
|
||||||
|
"class": "logging.FileHandler",
|
||||||
|
"filename": BASE_DIR / "data" / "logs" / f"{timezone.now().strftime('%Y%m%d')}.log",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"loggers": {
|
||||||
|
"django": {
|
||||||
|
"handlers": ["console", "file"],
|
||||||
|
"level": "INFO",
|
||||||
|
"propagate": True,
|
||||||
|
},
|
||||||
|
"django.utils.autoreload": {
|
||||||
|
"handlers": ["console"],
|
||||||
|
"level": "INFO",
|
||||||
|
"propagate": True,
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"handlers": ["console", "file"],
|
||||||
|
"level": "DEBUG",
|
||||||
|
"propagate": True,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ from __future__ import annotations
|
||||||
|
|
||||||
from django.contrib.sitemaps import GenericSitemap
|
from django.contrib.sitemaps import GenericSitemap
|
||||||
from django.contrib.sitemaps.views import sitemap
|
from django.contrib.sitemaps.views import sitemap
|
||||||
from django.urls import URLPattern, path
|
from django.urls import include, path
|
||||||
from django.views.decorators.cache import cache_page
|
from django.views.decorators.cache import cache_page
|
||||||
|
|
||||||
from feedvault import views
|
from feedvault import views
|
||||||
|
|
@ -19,8 +19,9 @@ sitemaps = {
|
||||||
"domains": GenericSitemap({"queryset": Domain.objects.all(), "date_field": "created_at"}),
|
"domains": GenericSitemap({"queryset": Domain.objects.all(), "date_field": "created_at"}),
|
||||||
}
|
}
|
||||||
|
|
||||||
urlpatterns: list[URLPattern] = [
|
urlpatterns: list = [
|
||||||
path(route="", view=views.IndexView.as_view(), name="index"),
|
path(route="", view=views.IndexView.as_view(), name="index"),
|
||||||
|
path("__debug__/", include("debug_toolbar.urls")),
|
||||||
path(route="feed/<int:feed_id>/", view=views.FeedView.as_view(), name="feed"),
|
path(route="feed/<int:feed_id>/", view=views.FeedView.as_view(), name="feed"),
|
||||||
path(route="feeds/", view=views.FeedsView.as_view(), name="feeds"),
|
path(route="feeds/", view=views.FeedsView.as_view(), name="feeds"),
|
||||||
path(route="add", view=views.AddView.as_view(), name="add"),
|
path(route="add", view=views.AddView.as_view(), name="add"),
|
||||||
|
|
|
||||||
17
poetry.lock
generated
17
poetry.lock
generated
|
|
@ -356,6 +356,21 @@ tzdata = {version = "*", markers = "sys_platform == \"win32\""}
|
||||||
argon2 = ["argon2-cffi (>=19.1.0)"]
|
argon2 = ["argon2-cffi (>=19.1.0)"]
|
||||||
bcrypt = ["bcrypt"]
|
bcrypt = ["bcrypt"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "django-debug-toolbar"
|
||||||
|
version = "4.3.0"
|
||||||
|
description = "A configurable set of panels that display various debug information about the current request/response."
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.8"
|
||||||
|
files = [
|
||||||
|
{file = "django_debug_toolbar-4.3.0-py3-none-any.whl", hash = "sha256:e09b7dcb8417b743234dfc57c95a7c1d1d87a88844abd13b4c5387f807b31bf6"},
|
||||||
|
{file = "django_debug_toolbar-4.3.0.tar.gz", hash = "sha256:0b0dddee5ea29b9cb678593bc0d7a6d76b21d7799cb68e091a2148341a80f3c4"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
django = ">=3.2.4"
|
||||||
|
sqlparse = ">=0.2"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "django-ninja"
|
name = "django-ninja"
|
||||||
version = "1.1.0"
|
version = "1.1.0"
|
||||||
|
|
@ -1012,4 +1027,4 @@ zstd = ["zstandard (>=0.18.0)"]
|
||||||
[metadata]
|
[metadata]
|
||||||
lock-version = "2.0"
|
lock-version = "2.0"
|
||||||
python-versions = "^3.12"
|
python-versions = "^3.12"
|
||||||
content-hash = "4ad21c4b598e168cb8df3e8970ad48b1427dab627303eea66d7cf1b55f817ed0"
|
content-hash = "acbd2c335db0529781e85823f05985272bce298add5c02bf2ddc990d478205db"
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@ gunicorn = "^21.2.0"
|
||||||
dateparser = "^1.2.0"
|
dateparser = "^1.2.0"
|
||||||
discord-webhook = "^1.3.1"
|
discord-webhook = "^1.3.1"
|
||||||
django-ninja = "^1.1.0"
|
django-ninja = "^1.1.0"
|
||||||
|
django-debug-toolbar = "^4.3.0"
|
||||||
|
|
||||||
[tool.poetry.group.dev.dependencies]
|
[tool.poetry.group.dev.dependencies]
|
||||||
ruff = "^0.3.0"
|
ruff = "^0.3.0"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue