Початок роботи
Минуло багато часу з того моменту, як я працював над своїм побічним проектом, оскільки робота та сім'я забирали багато часу. Я вирішив почати з чистого листа і вибрав Angular 19. Першим кроком було створення робочого простору, що виявилося досить простим:
npx create-nx-workspace@latest canva
Ця команда швидко налаштувала NX робочий простір з Angular додатком. Все пройшло без проблем, і я був готовий перейти до наступного кроку — вибору бібліотеки компонентів.
Вибір PrimeNG
Коли прийшов час вибирати бібліотеку компонентів, я провів швидкий пошук у Google. Більшість рекомендацій вказували на PrimeNG, в першу чергу через більш широкий набір компонентів порівняно з Angular Material.
Ось деякі думки, які я зустрів:
- Angular Material: Чудова документація, але обмежена кастомізація.
- PrimeNG: Високий рівень кастомізації, але документація не зовсім чітка.
Після ознайомлення з компонентами та темами PrimeNG, мені сподобалося, що я побачив, і я вирішив вибрати саме його.
Слідуючи керівництву по встановленню PrimeNG, я успішно додав бібліотеку до свого додатку. Це було просто і зрозуміло.
Виклик з бічним меню (Sidenav)
Я хотів додати компонент бічного меню (sidenav) до свого додатку. Копіювання робочого прикладу з документації PrimeNG здавалося безпроблемним. Однак компонент не поводився, як очікувалося.
Після перевірки компонента в браузері я зрозумів, що щось не так:
- Деякі класи з прикладу документації не були застосовані.
- Деякі стилі, ймовірно, відсутні.
Я спробував запустити приклад на StackBlitz, наданий в документації, але він постійно завантажував залежності без кінця. Після деяких налагоджень я зрозумів, що мені потрібно інтегрувати Tailwind CSS в мій додаток — деталь, яка не була згадана в документації.
Коли я востаннє інтегрував бібліотеку компонентів UI, це було досить просто — завантажити залежність і додати стилі, імпортувавши їх в styles.scss
або додавши в масив styles
у файлі angular.json
. Однак Tailwind CSS трохи відрізняється.
Додавання Tailwind CSS
Я слідував документації, щоб додати Tailwind до свого додатку, але кроки не спрацювали. Засмучений, я завантажив один з шаблонів PrimeNG, щоб зрозуміти, як налаштовано Tailwind. Компонент sidenav з шаблону працював ідеально. Після більш глибокого вивчення я зрозумів, що проблема була в моїй конфігурації. Документація була для стандартного Angular додатку, в той час як мій проект був NX.
Нарешті, я знайшов правильний процес налаштування в документації NX. Запуск наступної команди вирішив все:
npx nx g @nx/angular:setup-tailwind my-project
Ось посилання на посібник NX, який я використовував: Використання Tailwind CSS з Angular проектами.
Уроки, які я отримав
Це питання забрало у мене цілий день. На певному етапі я розглядав варіант відмовитися від PrimeNG і перейти на Angular Material. Але я вирішив не здаватися і зміг налаштувати все як треба. Я не хочу, щоб інші витрачали час на це, як я, тому ділюся своїм досвідом.
Для тих, хто зацікавлений, можете переглянути цей коміт на GitHub, який містить зміни для конфігурації PrimeNG та Tailwind.
Попереду ще багато цікавого
Це був лише початок моєї подорожі по створенню побічного проекту. Я продовжуватиму ділитися помилками та уроками, які я отримав. Слідкуйте за оновленнями!
Покращені можливості ORM в django.db
Django 5.1 покращує можливості свого Object-Relational Mapping (ORM), включаючи підтримку нових SQL функцій та покращену оптимізацію запитів.
Приклад:
from django.db.models import F, Func
# Використання SQL функцій у запитах
Book.objects.annotate(
discounted_price=F('price') - Func(F('discount'), function='ABS')
)
Це демонструє, як SQL функції можуть бути безперешкодно інтегровані у ORM запити.
5. Покращене оброблення сигналів
Сигнали в Django 5.1 тепер підтримують асинхронне виконання, що дозволяє розробникам покращити продуктивність в реальному часі.
Приклад:
from django.dispatch import receiver
from django.db.models.signals import post_save
@receiver(post_save, async=True)
def notify_admin(sender, instance, **kwargs):
print(f"New instance created: {instance}")
Це забезпечує неблокуюче виконання сигналів в асинхронних середовищах.
Чому варто оновитися до Django 5.1.4?
Оновлення до останньої версії Django — це важливий крок для розробників та організацій, які прагнуть залишатися попереду в питаннях безпеки, продуктивності та набору функцій. Ось чому варто оновитися:
- Покращена безпека: Виправлення критичних вразливостей робить ваш додаток безпечнішим від потенційних атак.
- Покращена стабільність: Виправлення багів забезпечують більш стабільну роботу, особливо для тих, хто використовує Python 3.13+ або працює з складними запитами до бази даних.
- Доступ до нових функцій: Отримуйте переваги від останніх доповнень, таких як маніпулювання параметрами запиту, пулінг для PostgreSQL та інше.
- Готовність до майбутнього: Оновлення забезпечує сумісність з сучасними інструментами та середовищами.
Як оновити
Оновлення до Django 5.1.4 є простим. Використовуйте наступну команду для оновлення вашої установки Django:
pip install --upgrade Django
Після оновлення перегляньте офіційні випуски, щоб зрозуміти будь-які зміни, які не є сумісними з попередніми версіями, і оновити ваш код відповідно.
Заключні думки
Django 5.1.4 підкреслює прихильність фреймворку до безпеки, інновацій та досвіду розробників. Незалежно від того, чи ви створюєте новий додаток, чи підтримуєте існуючий, це оновлення пропонує важливі покращення, які можуть підвищити продуктивність і безпеку вашого проєкту. Оновлюючись, ви забезпечуєте, щоб ваш додаток відповідав найкращим практикам сучасної веб-розробки.
Залишайтеся на зв'язку для подальших оновлень і продовжуйте використовувати потужні можливості Django для створення передових додатків.
В Fleapo ми дуже раді можливостям, які відкриває ця версія. Інтегруючи Django 5.1.4 у наші робочі процеси, ми зможемо продовжувати перевершувати очікування клієнтів, надаючи програмні рішення, які є не тільки надійними та безпечними, але й інноваційними та готовими до майбутнього.
Якщо ви шукаєте партнера, який допоможе вам створювати передові веб-додатки з використанням новітніх технологій, зв'яжіться з Fleapo сьогодні. Давайте разом перетворимо вашу ідею на масштабоване та ефективне цифрове рішення.
Перекладено з: Exploring Django 5.1.4: The Latest Updates and Features