Блог создать: Создать блог бесплатно | Блог платформа от Ucraft

Содержание

Как создать блог на Django с опросами и тестами. Часть 2

Введение

В предыдущей части мы разобрали шаблон для нашего блога, выбрали виртуальную машину и запустили на ней нативный веб-сервер Django. Однако он предназначен только для тестирования и запуска приложений во время разработки. Для обработки запросов в продакшене нужно настроить Nginx и WSGI Gunicorn. В этой статье коллеги из Proglib показывают, как это сделать. 

Ознакомиться с блогом можно по ссылке.

Добавляем новые фичи

Перед запуском блога в продакшен лучше убедиться, что необходимая функциональность реализована. В первой части мы собрали лишь базовые Django-приложения — users и blog. Но остальные фичи мы пока не добавили — пора это исправить.

Ниже разбираем шаблоны для создания опросов и тестов в блоге на Django. Делайте форк исходного кода, модифицируйте и предлагайте свои улучшения!

Приложение polls

В приложении polls сосредоточена вся функциональность, связанная с проведением опросов. Чтобы его создать, нужно запустить управляющий скрипт manage.py и зарегистрировать новое приложение.

manage.py startapp polls

Также важно зарегистрировать новое приложение в корневой директории проекта, в конфигурационном файле settings.py.

Чтобы пользователь мог подключиться к приложению, нужно настроить маршрутизацию — перейти в корневую директорию проекта и зарегистрировать пути в конфигурационном файле urls.py.

path('', include('polls.urls')) 

Собственные маршруты приложения polls будут храниться в файле users/urls.py — их можно найти и модифицировать по ссылке.

Приложение polls визуализирует результаты опросов с помощью библиотеки Chart.j: логика построения диаграмм описана в функции results

def results(request, question_id):
    profile = request.user.profile
    question = get_object_or_404(Question, pk=question_id)
    labels = []
    data = []
    votes = question.choice_set.select_related('question').all() 
    for item in votes:
        labels. append(item.name)
        data.append(item.votes)
    context = {	'question': question, 
    			'profile': profile, 
    			'labels': labels, 
    			'data': data}    
    return render(request, 'polls/results.html', context)

По возможности выносите логику валидаторов из views в отдельные модули.

Все необходимые шаблоны находятся в директории polls/emplates/polls:

  • question.html — выводит вопрос с вариантами ответа,
  • questions.html — обеспечивает постраничный вывод всех созданных опросов,
  • results.html — показывает результаты голосования.

Метод user_voted класса Question проверяет, принимал ли пользователь участие в опросе (проголосовать можно только один раз). Логика проведения опроса описана в polls/views.py. Функция vote предусматривает случаи, когда пользователь не выбрал ни один вариант ответа, и когда он уже принимал участие в опросе. 

Приложение quizzes

Приложение quizzes обеспечивает создание и обработку двух типов опросов — с одним и с несколькими правильными ответами. Аналогичным образом создаем его, регистрируем в settings.py и инициализируем в urls.py корневой директории. Маршруты самого блога находятся в quizzes/urls.py, а шаблоны — в quizzes/templates/quizzes.

Модуль опросов использует четыре шаблона:

  • display.html — показывает вопрос и варианты ответа,
  • partial.html — обеспечивает — совместно с JS-скриптом в файле display.html — вывод фидбека без перезагрузки страницы,
  • quizzes.html — отвечает за постраничный вывод созданных тестов.
  • results.html — выводит результаты прохождения теста.

Класс Question в quizzes/models.py содержит два вспомогательных метода:

  • get_answers — возвращает правильные ответы, в зависимости от типа вопроса,
  • user_can_answer — определяет, отвечал ли пользователь на этот вопрос ранее.

Функции представления в quizzes/views.py отвечают за последовательный вывод вопросов теста и оценку ответов пользователя. Сохранение статистики по правильным и неверным ответам реализовано с помощью класса Result. При этом обновление значений в базе данных проводится с помощью объекта F.

result, created = Result.objects.get_or_create(user=request.user, 
    quiz=quiz)
if is_correct is True:
    result.correct = F('correct') + 1
else:
    result.wrong = F('wrong') + 1

Готово — теперь можно отправить блог в продакшен!

Обновление файлов на сервере

В предыдущей части мы уже арендовали виртуальный сервер с гибкой производительностью ядра и загрузили код проекта. Теперь его необходимо обновить — задеплоить новые приложения polls и quizzes. Для этого нужно запушить их в репозиторий на GitHub, а после — сделать git pull на стороне сервера.

от 280 ₽/мес.

Настройка Nginx и Gunicorn

При обслуживании Django-приложения Nginx выступает в качестве обратного прокси-сервера: отвечает за обработку входящих запросов на 80 порт и переадресацию их в Gunicorn. 

Gunicorn же исполняет роль сервера приложений: отвечает за запуск Django, обработку запросов и генерацию ответов. В результате система работает по такой схеме: 

  1. клиент отправляет запрос на сервер Nginx,
  2. Nginx пересылает (проксирует) запрос в Gunicorn с помощью директивы proxy pass,
  3. Gunicorn передает пользовательский запрос в Django,
  4. Django обрабатывает запрос, генерирует ответ и отправляет в Gunicorn,
  5. Gunicorn отправляет результат в Nginx, который перенаправляет его клиенту.

При такой конфигурации Nginx обеспечивает быструю и эффективную обработку запросов, а Gunicorn позволяет запускать несколько процессов для параллельной обработки запросов и отвечает за автоматический перезапуск и плавное завершение рабочих процессов. 

Установка и тестирование Gunicorn

В установке нет ничего сложного: достаточно активировать виртуальное окружение и установить необходимые зависимости.

source blogitenv/bin/activate
pip install gunicorn

Проверьте и при необходимости измените настройки config/settings.py, как было показано в предыдущей части. А после создайте суперпользователя и базу данных и соберите статические файлы.

python3 manage.py migrate
python3 manage.py createsuperuser
python3 manage.py collectstatic

Теперь можно протестировать работу Gunicorn, запустив его в связке с Django-приложением.

gunicorn --bind 0.0.0.0:8000 config.wsgi

Все работает: к блогу можно подключиться по IP-адресу через 8000-порт. Но сейчас веб-сервер запускается вручную. В продакшене это должно происходить автоматически — нужно настроить Gunicorn и Nginx для совместного обслуживания Django-приложения. 

Настройка Gunicorn

Для автоматизации запуска Django-приложения сначала нужно создать конфигурационные файлы gunicorn.socket и gunicorn.service. Начнем с первого: 

sudo nano /etc/systemd/system/gunicorn.socket
[Unit]
Description=Gunicorn socket
 
[Socket]
ListenStream=/run/gunicorn.sock
 
[Install]
WantedBy=sockets.target

Содержимое файла gunicorn.socket

Теперь создадим gunicorn. service и укажем на виртуальное окружение, которое должен запускать веб-сервер.

sudo nano /etc/systemd/system/gunicorn.service
[Unit]
Description=Gunicorn daemon
Requires=gunicorn.socket
After=network.target
 
[Service]
User=root
Group=www-data
WorkingDirectory=/root/blogit
ExecStart=/root/blogitenv/bin/gunicorn \
      	--access-log file - \
      	--workers 5 \
      	--bind unix:/run/gunicorn.sock \
      	config.wsgi:application
 
[Install]
WantedBy=multi-user.target

Содержимое файла gunicorn.service

Теперь можно запустить Gunicorn и проверить его статус. 

sudo systemctl start gunicorn.socket
sudo systemctl enable gunicorn.socket
sudo systemctl start gunicorn.service
sudo systemctl enable gunicorn.service
sudo systemctl status gunicorn

Правильно настроенный сервер вернет статус running и выведет информацию о workers — параллельно запущенных инстансах Django-приложения. В конфигурационном файле gunicorn.service мы зарегистрировали пять «воркеров» — Gunicorn должен их запустить.  

Проксирование запросов  

Последним этапом нужно перейти в настройки сервера Nginx и настроить проксирование запросов с 80 порта на Gunicorn. 

sudo nano /etc/nginx/sites-available/blogit
server {
	listen 80;
	server_name 94.26.224.162;
	access_log /var/log/nginx/access.log;
	error_log /var/log/nginx/error.log;
 
	location = /favicon.ico {
    	alias /root/blogit/static/favicon.ico;
	} 
 
	location /static/ {
    	alias /root/blogit/static/;
	}
 
	location /media/ {
    	alias /root/blogit/media/;
	}
 
	location / {
    	include proxy_params;
    	proxy_pass http://unix:/run/gunicorn.sock;
	}
}

Содержимое файла /etc/nginx/sites-available/blogit. В качестве server_name укажите публичный IP-адрес своей виртуальной машины.

Чтобы применить конфигурации, свяжите директивы Nginx — sites-available и sites-enabled — с помощью символической ссылки:

sudo ln -s /etc/nginx/sites-available/blogit /etc/nginx/sites-enabled/

Обратите внимание: если в конфигурационных файлах в дальнейшем будет обнаружена ошибка, ссылку необходимо создать заново, но уже с флагом -sf.

sudo ln -sf /etc/nginx/sites-available/blogit /etc/nginx/sites-enabled/
sudo systemctl reload nginx

Кроме того, если вы разворачиваете проект не под root, нужно назначить права доступа для директорий static и media.

chown -R django_user:www-data /var/www/blogit/static/
chown -R django_user:www-data /var/www/blogit/media

На этом настройка Nginx и Gunicorn завершена. Теперь вы можете открыть сайт через браузер. При желании вы можете арендовать доменное имя и сгенерировать SSL-сертификат.

Заключение

Мы все еще разработали лишь малую часть функциональности блога. Например, можно бесплатно протестировать почтовый сервис Selectel и настроить восстановление пароля с помощью email-сообщений.  Делайте форк проекта и предлагайте свои улучшения!

PythonОблачные серверы

Создать блог — Помощь Pixpa

Искать

Вы можете создать блог на своем веб-сайте Pixpa и выражать себя с помощью комбинации изображений, слов и видео.

Блог можно использовать, чтобы поделиться своим путешествием с пользователями вашего сайта, публикуя истории, сообщения и объявления. Функция ведения блога предлагается на всех Планы.

Также проверьте: Обзор блога.

Pixpa позволяет добавлять сообщения в блог, теги, выдержки и категории. Вы также можете управлять комментариями и авторами сообщений в блоге.


Добавьте блог на свой сайт

  • Enter добавить блог (1) в строке поиска.
  • В результатах нажмите на Добавить Блог вариант (2) под Действия. 
  • Из Добавить пункт меню всплывающее окно, выберите Блог опцию.
  • Укажите имя для вашего нового блога.

 

  • Теперь вы можете начать добавлять сообщения в блог и получить доступ к обзору блога, настройкам и разделам дизайна, чтобы настроить свой блог.
    Также проверьте: Блог Дизайн.

Примечание: Вы увидите недавно добавленную ссылку на блог в нижней части меню вашего сайта. Вы можете перетащить ссылку на блог в нужное место в меню веб-сайта.
Также см: Ссылки на последовательности в меню сайта.

Наконечник: Вы можете добавить несколько блогов на свой сайт. Узнать больше.


Обзор блога

Теперь вы находитесь на начальном экране нового блога, в котором нет постов.
Вот как это выглядит: 

 

  1. блог: Здесь отображается название блога.
  2. Посмотреть: Просмотрите свой блог.
  3. + Добавить пост: Добавьте новую запись в блог. Проверьте: Добавить сообщение в блоге.
  4. Сообщения в блоге: Управление всеми сообщениями в блоге (добавление/редактирование/удаление сообщений в блоге). Проверьте: Страница всех сообщений.
  5. Категории блога: Управление категориями блога. Проверьте: Блог категории
  6. Настройки: Управление настройками блога. Проверьте: Настройки блога.
  7. Авторы: Управление авторами блога. Проверьте: Авторы блога.
  8. Новостная лента: Получите RSS-канал блога. Проверьте: RSS-канал блога.
  9. Комментарии: Управление комментариями в блоге. Проверьте: Комментарии блога.

Наконечник: RSS-канал позволяет посетителям вашего сайта подписываться на сообщения вашего блога и получать обновления. Это также помогает облегчить вашу работу, автоматически публикуя вашу недавнюю публикацию в блоге на различных платформах распространения кросс-контента.

Метки: добавить блогСоздать блог

Не можете найти то, что ищете?

Свяжитесь с экспертом Pixpa.

Свяжитесь с нами

Как создать блог

Добавление блога на ваш веб-сайт — отличный способ привлечь трафик на ваш веб-сайт и расширить список рассылки.

Как добавить страницу блога

Чтобы создать страницу блога на своем веб-сайте, перейдите на страницу  Сайты и нажмите на вкладку Веб-сайты . Затем:

  1. Откройте свой сайт в конструкторе сайтов.

  2. На боковой панели нажмите вкладку  Pages  .

  3. Нажмите  Создать новую  , чтобы добавить новую страницу.

  1. Выберите Блог в качестве нового типа страницы.

  1. Выберите имя для страницы вашего блога. Название — это то, как оно будет отображаться в навигации вашего сайта.

Совет: Если вы не хотите, чтобы страница вашего блога отображалась на опубликованном веб-сайте, установите флажок  Пометить как черновик страницы  и  Скрыть страницу из навигации . Это сохранит ваши изменения без публикации страницы на вашем веб-сайте.

После создания вы можете редактировать  Настройки блога  на боковой панели на вкладке Контент  .

Чтобы изменить настройки оформления страницы блога, нажмите вкладку Настройки на боковой панели.

Каждый создаваемый веб-сайт может иметь одну страницу блога.

Как добавлять/редактировать сообщения в блоге

Сообщения в блоге можно найти и создать на вашем веб-сайте 9Страница 0009 Обзор на вкладке Блог .

Чтобы создать публикацию:

  1. Нажмите Создайте публикацию и дайте ей название.

  2. Затем вы можете отредактировать Заголовок сообщения , Отрывок,  и  Избранное изображение вашего сообщения в блоге. Если вы создали категории, они также появятся здесь.

  1. Выберите, хотите ли вы включить тепловую карту кликов , чтобы отслеживать, где читатели нажимают на страницу вашего блога.

  2. Щелкните Сохранить и изменить содержимое .

Теперь вы можете начать писать сообщение в блоге, введя его непосредственно в редактор сообщений блога.

Как добавить блоки в запись блога

Существует множество типов блоков, которые вы можете использовать в сообщениях блога:

  • Текст  – добавьте текст к сообщению блога

  • Изображение  – Вставьте изображение из файлового менеджера

  • Карусель изображений

  • Разделитель  – Разделите содержимое блога 90 003

  • Таблица  – вставьте таблицу в сообщение блога.

  • Код  – Настройте свой пост в блоге, вставив дополнительный код

  • Форма регистрации  – Пригласите читателей присоединиться к вашему списку рассылки

  • Видео  – Вставьте видео в сообщение блога

  • Маленькое изображение и контент

  • 1 столбец контента

  • 2 столбца содержания

  • 3 столбца содержания контент

  • Кнопка

  • Ссылки на социальные сети

  • Поделиться в социальных сетях 9 0003

Чтобы добавить блоки в запись блога, нажмите кнопку + или наведите указатель мыши на поле слева от текста, пока не появится значок +  .

Если вы довольны своим контентом, вы можете нажать Сохранить и опубликовать, чтобы немедленно опубликовать свое сообщение. Если вы не хотите публиковать свою запись в блоге сразу, вы можете щелкнуть стрелку раскрывающегося списка, чтобы сохранить и запланировать публикацию в блоге на потом, или сохранить публикацию в блоге как черновик.

Как опубликовать запись в блоге

Чтобы опубликовать свой пост, нажмите Сохраните и опубликуйте в редакторе сообщений блога или перейдите на вкладку  Блог  и нажмите кнопку  Опубликовать  на сообщении, которое вы хотите опубликовать на своем веб-сайте.

Вы можете опубликовать сообщение сейчас или позже.

В любое время, когда вы хотите добавить или изменить сообщения в блоге, вы можете просто вернуться на вкладку Блог своего веб-сайта, чтобы редактировать и создавать сообщения без необходимости открывать конструктор веб-сайтов.

Вы также можете отменить публикацию сообщений в блоге, нажав кнопку Кнопка «Отменить публикацию» .

Чтобы получить советы о том, как создавать контент для своего нового блога, ознакомьтесь с нашим полным руководством о том, как создавать контент, который будет интересен людям.

Как изменить дату публикации в блоге

Если вы переходите с другой платформы и хотите повторно опубликовать блоги с их исходными датами, вы можете изменить дату, отображаемую при создании сообщения в блоге. Чтобы изменить дату сообщения в блоге:

  1. Перейдите к  сайтов стр.

  2. Нажмите кнопку Обзор на веб-сайте, содержащем подготовленный пост в блоге.

  3. Выберите вкладку Блог .

  4. Найдите сообщение в блоге, для которого вы хотите изменить дату.

  5. Нажмите стрелку раскрывающегося списка рядом с кнопкой Изменить и выберите  Подробности .

  6. Прокрутите вниз до раздела Сообщение создано и измените дату.

  7. Нажмите  Обновить сведения .

Примечание: Дата создания сообщения  можно редактировать только в опубликованных сообщениях.

Как создавать и управлять категориями блога

Чтобы добавить и изменить категории для страницы блога:

  1. Перейдите к   странице Sites .

  2. Перейдите на вкладку Веб-сайты и выберите веб-сайт, содержащий блог, к которому вы хотите добавить категории.

  3. Перейдите на вкладку  Блог  .

  4. Нажмите кнопку  Управление категориями  .

  5. Нажмите Создайте категорию .

  1. Выберите название для новой категории и нажмите Создать . Название — это то, как категория будет отображаться на вашем сайте.

  1. Выберите Slug для страницы вашей категории.

  1. Примените желаемые настройки SEO и Настройки социальных сетей .

  1. Нажмите Сохранить .

Теперь вы можете классифицировать свои сообщения в блоге на основе контента, который вы публикуете.

Чтобы добавить существующую запись в блоге в только что созданную категорию:

  1. Вернитесь к своим записям в блоге.

  2. Щелкните стрелку раскрывающегося списка рядом с кнопкой Изменить и выберите  Подробности .

  1. Прокрутите вниз, чтобы выбрать категории, и выберите категорию, в которую вы хотите добавить свой пост в блоге.

Как добавить якорные ссылки в блог

Якорные ссылки позволяют читателям переходить к содержимому, которое бросается в глаза. Чтобы добавить привязки к блогу:

  1. Нажмите символ + в редакторе блога и выберите Anchor.

  2. Назовите якорь, чтобы его было легко найти на следующем шаге

  3. Добавьте оглавление, изображение или блок кнопок.

  4. В настройках блока откройте выпадающее меню Link и выберите Anchor.

  5. Выберите якорь, на который вы хотите сослаться. Вы даже можете использовать навигацию в заголовке как ссылку на свой блок Anchor !

Узнайте, как построить блог-бизнес и избежать обыденности

Нами движут результаты наших студентов

«Я довольно быстро увеличил свой доход до 4000-5000 долларов, в основном за счет изменения всех последовательностей электронной почты. В Six-цифровом Blogger есть модуль последовательности электронной почты, который изменил мою жизнь».

Натали, теперь сертифицированный лайф-коуч, зарабатывает более 40 000 долларов в месяц.

— Natalie Bacon.com

«Я не маркетолог. Я финансовый эксперт. Я боролся со своей страницей продаж. Я реализовал то, что вы сказали на вашем курсе, и в течение недели я увидел увеличение своих продаж на 25%».

Бола зарабатывает шестизначные суммы в месяц на своем финансовом блоге для женщин.

— Бола Сокунби, Clever Girl Finance

«Я хотела творчески объединить весь свой профессиональный опыт (юридический, бизнес, коучинг и преподавание), который позволил бы мне существенно изменить жизнь другие, сохраняя при этом доступность моих продуктов и услуг».

Амира завела свой блог и за первый месяц заработала деньги. Сейчас она зарабатывает более 20 000 долларов в месяц на блогах.

— Амира Лоу, Самостоятельный Гуру

«Я сосредоточилась на создании продуктов и воронок для моей ниши в физиотерапии, и это принесло более 1000 долларов в месяц только за первые пару месяцев!»

Тим теперь зарабатывает более 8000 долларов в месяц на своем блоге.

— Тим Фратичелли, PT Progress

Простой и интуитивно понятный путь к успеху в блогах

Шаг 1

Создание и создание блога
  • Как создать блог (пошаговое руководство)
  • 101 тема блога, которые действительно приносят деньги
  • 6 лучших блог-сайтов и платформ
  • Дизайн блога Вдохновение и советы

Шаг 2

Расширьте свою аудиторию
  • Как написать убийственный пост в блоге
  • SEO-оптимизация блога для начинающих
  • Как создать список адресов электронной почты
  • Трафик Pinterest для блоггеров

Шаг 3

Заработок $$$
  • Как заработать на блогах (10 шагов)
  • Партнерский маркетинг для блоггеров
  • Лучшие рекламные сети для блоггеров
  • Самые успешные блоги (самые высокооплачиваемые)

Мы «нормальные» люди с БОЛЬШИМИ мечтами

Жизнь сейчас кажется тебе скучной? Например, пытаться нарисовать красивую картинку коробкой серых мелков?

Как и многие из вас, вероятно, чувствуют.