Giter Site home page Giter Site logo

socialnetwork02's Introduction

Проект SocialNetwork.02

pytest Django HTML5 CSS Python Git

Описание

SocialNetwork - это социальная сеть с авторизацией, персональными лентами, комментариями и подписками на авторов статей.

Функционал

  1. Создано и подключено приложение core:

    • размещён и зарегистрирован фильтр addclass, позволяющий добавлять CSS - класс к тегу шаблона;
    • создан и зарегистрирован контекст-процессор, добавляющий текущий год на все страницы в переменную {{ year }}.
  2. Создано и подключено приложение about:

    • созданы статические страницы /about/author/ и /about/tech/;
    • ссылки на эти страницы добавлены в навигацию сайта.
  3. Подключено приложение django.contrib.auth, его urls.py подключен к основному urls.py.

  4. Создано и подключено приложение users:

    • переопределены шаблоны для адреса авторизации /auth/login/;
    • переопределены шаблоны для адреса выхода из аккаунта /auth/logout/;
    • создана страница /auth/signup/ с формой для регистрации пользователей.
  5. В приложении posts сделано следующее:

    • создана страница пользователя c постами пользователя profile/<username>/;
    • создана отдельная страница поста posts/<post_id>/;
    • подключен паджинатор, выводящий по десять постов на страницы профиля, группы и главную.
  6. Создана навигация по разделам.

  7. Ссылка «Новая запись» добавлена в шапку сайта. Она видна только авторизованным пользователям и ведёт на страницу /create/.

  8. На странице /create/ создана форма для добавления новой публикации:

    • view-функция для страницы /create/ называется post_create();
    • name для path() страницы /create/ - post_create;
    • в контекст шаблона страницы /create/ передается переменная form. Она содержит объект PostForm, в котором два поля:
    • text (обязательное для заполнения поле);
    • group (необязательное для заполнения);
    • после валидации формы и создания нового поста автор перенаправляется на страницу своего профайла /profile/.
  9. Добавлена страница редактирования записи с адресом /posts/<post_id>/edit/. View-функцию для этой страницы post_edit().

    • Права на редактирование есть только у автора этого поста. Остальные пользователи перенаправляются на страницу просмотра поста.
    • При генерации страницы в контекст передается переменная form, в ней два поля: text и group.
    • Для страницы редактирования поста применяется тот же HTML - шаблон, что и для страницы создания нового поста: posts/create_post.html.
  10. Шаблон усложнен:

    • при редактировании поста заголовок «Добавить запись» заменяется на «Редактировать запись»;
    • надпись на кнопке отправки формы зависит от операции: «Добавить» для новой записи и «Сохранить» — для редактирования.

Установка

  1. Клонировать репозиторий:

    git clone https://github.com/egorcoders/hw02_community.git
  2. Перейти в папку с проектом:

    cd socialnetwork02/
  3. Установить виртуальное окружение для проекта:

    python -m venv venv
  4. Активировать виртуальное окружение для проекта:

    # для OS Lunix и MacOS
    source venv/bin/activate
    
    # для OS Windows
    source venv/Scripts/activate
  5. Установить зависимости:

    python3 -m pip install --upgrade pip
    pip install -r requirements.txt
  6. Выполнить миграции на уровне проекта:

    cd yatube
    python3 manage.py makemigrations
    python3 manage.py migrate
  7. Запустить проект локально:

    python3 manage.py runserver
    
    # адрес запущенного проекта
    http://127.0.0.1:8000

Технологии

  • Python3
  • Flake8
  • pytest==6.2.5
  • HTML5
  • Django==2.2.9

Автор

Екатерина Новикова

socialnetwork02's People

Contributors

katherin-ov avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.