Ссылки
Ссылка на GitHub проекта - Проект для создания сайта для публикации блогов.
Цель проекта
Это проект по созданию полноценного бэкэнда сайта при помощи фреймворка Django и СУБД SQL Lite.
Проект включает в себя:
- Модели для работы с базой данных
- Представления на основе шаблонов веб-страниц
- API для создания фронтэнд части.
- Локализацию для Русского и Английского языков
- Разрешения для групп пользователей
- Страницу администратора для управления сайтом
- Страницу регистрации пользователей
- Страницу для логина пользователей
- unit-тесты проекта
Структура проекта
Для создания структуры проекта использован фрэймворк Django. Структура проекта соответсвует стандартной структуре проекта Django:
users_app
- приложение для регистрации и аутентификации пользователей сайта.blogs_app
- приложение для создания записей блогов, комментариев, загрузки изображений.locale
- директория для хранения файлов локализации сайта.media
- директория для хранения загруженных файлов изображений и CSV файлов.project
- директория для хранения файлов проекта.
Структура users_app
admin.py
- файл для конфигруации административной панели django.apps.py
- файл для конфигурации приложения.forms.py
- файл для создания формы регистрации пользователей, формы входа на сайт.models.py
- файл для создания моделей для работы с базой данных.urls.py
- файл для задания рутингов веб-страниц.views.py
- файл для представлений веб-страниц.templates
- директория для хранения шаблонов веб-страниц.login.html
- шаблон страницы логина на сайте.registration.html
- шаблон страницы регистрации на сайте.user_edit.html
- шаблон страницы редактирования информации о пользователе.
tests
- папка для хранения тестов приложения.test_views.py
- файл тестов представлений веб-страниц.
Структура blogs_app
admin.py
- файл для конфигруации административной панели django.api.py
- файл с представлениями для Django Restframework Api.apps.py
- файл для конфигурации приложения.forms.py
- файл для создания формы публикации блога, формы публикации комментариев, формы загрузки изображений, формы загрузки CSV файлов.models.py
- файл для создания моделей для работы с базой данных.permissions.py
- файл для конфигурации пользовательских прав доступа.serializers.py
- файл сериализаторов Django Restframework Api.urls.py
- файл для задания рутингов веб-страниц.views.py
- файл для представлений веб-страниц.templates
- папка для хранения шаблонов веб-страниц.blog_details.html
- шаблон страницы с детальным отображением блога.blog_list.html
- шаблон страницы с отображением cписка блогов.create_blog.html
- шаблон страницы создания блога.csv_upload.html
- шаблон страницы загрузки CSV файла.
tests
- папка для хранения тестов приложения.test_views.py
- файл тестов представлений веб-страниц.test_api.py
- файл тестов представлений Django Restframework Api.
Функции сайта
Реализованы следующие функции для работы с блогами:
- Просмотр списка опубликованных блогов. Отображение названия, части текста, автора, даты создания блога.
- Просмотр детальной страницы блога. Отображение названия, текста, изображений. Форма публикации комментариев. Отображение опубликованных комментариев.
- Создание блога и загрузка изображений к нему.
- Создание блогов путем загрузки CSV файла и информацией о них.
- Регистрация пользователя.
- Вход пользователя на сайт.
- Редактирование данных пользователя.
Функции API
Реализован доступ к следущей информации через API:
- Пагинация страниц.
- Отображение списка пользователей и детальный вид пользователя:
- Id пользователя.
- Имя пользователя.
- Опубликованные блоги.
- Опубликованные комментарии.
- Отображение списка блогов и детальный вид блога:
- Заголовок блога.
- Содержание блога.
- Дата создания блога.
- Автор блога.
- Комментарии к блогу.
- Изображения к блогу.
- Отображение списка комментариев и детальный вид комментария:
- Автор комментария.
- Блог комментария.
- Текст комментария.
- Отображение списка загруженных изображений и детальный вид изображения:
- Блог изображения.
- Изображение.
Рутинги HTML страниц и API endpoints
HTML страницы
create_blog/
- Страница создания блога.blog/
- Список блогов.blog/<int:pk>
- Страница блога.create_blog/csv
- Страница загрузки CSV файла.register/
- Страница регистрации пользователя.edit/
- Страница редактирования информации о пользователе.login/
- Страница входа на сайт.logout/
- Страница выхода с сайта.
API endpoints
api/
- Корневая страница.api/users
- Страница со списком пользователей.api/blogs
- Страница со списком блогов.api/comments
- Страница со списком комментариев.api/uploadimages
- Страница со списком загруженных изображенийapi/users/<int:pk>
- Детальная страница пользователя.api/blogs/<int:pk>
- Детальная страница блога.api/comments/<int:pk>
- Детальная страница комментария.api/uploadimages/<int:pk>
- Детальная страница загруженного изображения.