Автор: Андрій Вознюк

Django deploy налаштування

Поради як безпечно налаштувати сервер на продакшені приховати SECRET_KEY Можемо читати з .env, а можемо з окремого файлу (а також перед кожним запуском формувати новий) with open(os.path.join(BASE_DIR, ‘secret_key.txt’)) as f: SECRET_KEY = f.read().strip() Https налаштування (якщо для сайту вже налаштовано) # HTTPS settings SESSION_COOKIE_SECURE = True CSRF_COOKIE_SECURE = True SECURE_SSL_REDIRECT = True Django HSTS Settings…

Прочитати статтю повністю

Wagtail template hints 1

Приклади коду шаблону щоб не забути, (css – bootstrap 5) {% extends “base.html” %} {% load static wagtailimages_tags wagtailcore_tags %} {% for file in page.project_file.all %} {% if forloop.first %} <div>Files:<br> {% endif %} <a target=”_blank” href=”{{ file.prj_file.url }}”> <img class=”card-img-top mb-5 mb-md-0″ src=”{{ file.prj_file.url }}” alt=”{{ file.description }}” /> </a> {% if forloop.last %}…

Прочитати статтю повністю

Exim корисні команди

Черга Подивитись повідомлення, що стоять в черзі на відправку: exim -bp порахувати скільки разів зустрічається слово grep -o -i user@example.com /var/log/exim4/mainlog | wc -l скільки листів на відправку висить з домену-відправника exiqgrep -f example.com -i | wc -l подивитись адреси отримувачів з домену exiqgrep -f  sender@example.com | grep receiver.tld Видалити усі повідомлення exim -bp |…

Прочитати статтю повністю

Wagtail deploy to production

Виникають питання – тут про особливості деплою Static Files Manual Django   Про Docker Розгорнути в докері   CSRF особливості CSRF_TRUSTED_ORIGINS = [‘https://*.mydomain.com’,’https://*.127.0.0.1′]   Caching Django caching  

Python IDE – # noqa

Зустрів таку позначку class Meta: # noqa Виявилось, що це не просто комент. Відключає попередження IDE: NOQA stands for NO Quality Assurance. What this typically means is that if you have any warning in your IDE, then if you add a comment as # noqa at the end of the line then the warning will…

Прочитати статтю повністю

Docker quickstart

Зберіг тут швидкий старт  по Docker для Django – декілька команд швидкого запуску в Docker: docker –version sudo docker build -t <project_name> . docker container ls docker run -it -p 8000:8080 –name <project_name> sudo docker exec -it <container_id> /bin/bash python manage.py makemigrations python manage.py migrate python manage.py createsuperuser python manage.py collectstatic      

Wagtail – налаштування мови сайту

Ця тема добре розкрита в  документації  Додати щось важко, важливо бути уважним. Тут будуть особливості. Після налаштувань згідно з інструкцією автоматично обирає локаль в залежності від налаштувань браузера відвідувача. Два варіанти перемикача (ставив в базовий шаблон) перший – вказано тільки інші мови {% if page %} {% for translation in page.get_translations.live %} {% get_language_info for…

Прочитати статтю повністю

Django записник

Розгортаємо (наприклад версія Python 3.9, тут для Windows): python3.9 -m venv env source env/bin/activate python -m pip install –upgrade pip pip install django АБО pip install git+https://github.com/django/django.git # (альтернатива встановлення з GIT ) pip install -r requirements.txt  # (якщо цей файл є ) python manage.py makemigrations python manage.py migrate python manage.py createsuperuser python manage.py createsuperuser…

Прочитати статтю повністю

Wagtail записник

Розгортаємо: python3.9 -m venv env pip install wagtail wagtail start mysite . pip install -r requirements.txt python manage.py makemigrations python manage.py migrate python manage.py createsuperuser все схоже як у Django pagination не оптимально, але для старту ок https://learnwagtail.com/tutorials/how-to-paginate-your-wagtail-pages/

Django model підказки

Для Foreign – поля обов’язково використовувати on_delete=models.опція є такі ключі: CASCADE: When the referenced object is deleted, also delete the objects that have references to it (when you remove a blog post for instance, you might want to delete comments as well). SQL equivalent: CASCADE. PROTECT: Forbid the deletion of the referenced object. To delete it…

Прочитати статтю повністю