1
0
Fork 0
mirror of https://github.com/EDeev/deev.space.git synced 2026-10-07 20:49:59 +03:00
deev.space/main/urls.py
Egor Deev 1320562734 Исправления безопасности и чистка кода
- render_tech_badge: format_html вместо mark_safe с непроверенной подстановкой (XSS);
- превью ссылок статьи: только публичные http(s)-адреса, без запросов во внутреннюю
  сеть сервера (SSRF); ошибки логируются вместо except: pass;
- автопостинг в Telegram переведён на parse_mode=HTML с html.escape (раньше в канал
  уходили видимые обратные слэши), включается переменной SOCIAL_AUTOPOST;
- убран ping Google (эндпоинт отключён в 2023 году);
- ошибка отправки письма с формы обратной связи больше не глушится;
- whitenoise и DJANGO_SERVE_MEDIA для запуска без nginx;
- импорты упорядочены, неиспользуемые удалены (ruff).
2026-10-02 11:59:07 +00:00

27 lines
1.2 KiB
Python

from django.urls import path
from . import views
urlpatterns = [
# Основные страницы
path('', views.IndexView.as_view(), name='index'),
path('about/', views.AboutView.as_view(), name='about'),
path('projects/', views.ProjectsView.as_view(), name='projects'),
path('achievements/', views.AchievementsView.as_view(), name='achievements'),
path('contacts/', views.ContactsView.as_view(), name='contacts'),
# Блог
path('blog/', views.BlogView.as_view(), name='blog'),
path('blog/category/<slug:category_slug>/', views.BlogView.as_view(), name='blog_category'),
path('blog/<slug:slug>/', views.ArticleDetailView.as_view(), name='article_detail'),
# Аутентификация
path('register/', views.register_view, name='register'),
path('login/', views.login_view, name='login'),
path('logout/', views.logout_view, name='logout'),
# API
path('api/article/<int:article_id>/comment/', views.add_comment, name='add_comment'),
path('api/article/<int:article_id>/like/', views.toggle_article_like, name='toggle_article_like'),
path('api/comment/<int:comment_id>/like/', views.toggle_comment_like, name='toggle_comment_like'),
]