🚀 Кращі практики для структурування Django проекту

pic

Важко організувати свої Django проекти? 😓 Давайте зробимо ваше життя простішим! У цій статті я представлю вам шаблон Django 🛠️, який відповідає промисловим стандартам ✅. Попрощайтеся з безладною структурою та привітайте швидше створення неймовірних функцій! ✨

👉 Перегляньте мій шаблон на LinkedIn

🌟 Чому варто використовувати цей шаблон?

  • Економить час 🕒
  • Спрощує управління проектом 📂
  • Вражає колег і співпрацівників 🎉 (так, мої студенти це обожнюють!)

У цьому посібнику ми розглянемо:
1️⃣ Налаштування віртуального середовища (VE) 🌐
2️⃣ Створення Django проекту 📦
3️⃣ Управління залежностями 📜
4️⃣ Оптимізація налаштувань ⚙️
5️⃣ Структурування Django додатків 🏗️
6️⃣ Використання Makefile для скорочень команд … Читати далі

10 найкращих курсів з Django на Udemy (2025)

Django дає змогу розробникам створювати динамічні, функціонально багаті вебсайти за допомогою Python.

Розробники часто обирають його за сильні можливості, чітку організацію та підтримуючу спільноту.

Навчання Django може відкрити чудові можливості у веб-розробці, від простих блогів до складних інтернет-магазинів.

Знайти правильний курс по Django на Udemy може бути важко через величезний вибір.

Вам потрібен всебічний та захоплюючий курс, який викладають досвідчені інструктори, і який відповідає вашому стилю навчання та рівню знань.

Ви також хочете курс, що надає як теорію, так і практичні проекти для навчання на практиці.

Ми проаналізували багато курсів по Django, і Python and Django Full Stack Web Читати далі

Створення кастомних листів з вкладеннями в Django

pic

У багатьох проєктах відправка електронних листів з вкладеннями є звичайною вимогою. У цій статті ми розглянемо, як налаштувати функціональність відправки електронних листів у Django для включення вкладень, використовуючи кастомний адаптер класу.

Налаштування кастомного адаптера для електронної пошти

Спочатку створимо кастомний адаптер, успадкувавши DefaultAccountAdapter з Django. Цей адаптер буде відповідати за відправку електронних листів з вкладеннями.

from allauth.account.adapter import DefaultAccountAdapter
class CustomAccountAdapter(DefaultAccountAdapter):  
 current_site = 'yourdomain.com' def send_mail_with_attachment(self, template_prefix, email, context):  
 ctx = {  
 "email": email,  
 "current_site": context['current_site'],  
 }  
 ctx.update(context)  
 msg = self.render_mail(template_prefix, email, ctx) # Прикріплюємо файли до листа  
 if context.get('attachments'):  
 for attachment in context['attachments']:  
 file_name, content, content_type = attachment  
 msg.attach(file_name, 
Читати далі

Що таке міграції?

pic

Привіт, деви! 😎

Ви знаєте, що таке міграції?

Я хочу детальніше розповісти про цей інструмент. Міграції — це незамінний інструмент у розробці програмного забезпечення, особливо в контексті реляційних баз даних. Це скрипти або файли, які дозволяють керувати змінами в структурі бази даних організовано та контрольовано. Основна мета міграцій — підтримувати узгодженість між кодом програми та схемою бази даних.

Основні характеристики міграцій

Керування змінами в базі даних

Міграції дозволяють створювати, змінювати або видаляти таблиці, стовпці, індекси та інші елементи бази даних.

Контроль версій

Міграції працюють як система контролю версій для бази даних, дозволяючи поступово застосовувати або скасовувати зміни.

Автоматизація

Міграції спрощують … Читати далі

Оволодіння аналізом бандлів в Angular: оптимізація вашого додатку

As Angular розробники, підтримка високої продуктивності додатків є важливою. Однак, з розростанням наших додатків зростають й JavaScript бандли, що часто призводить до збільшення часу завантаження і погіршення досвіду користувача. Аналіз бандлів є важливим етапом для оптимізації продуктивності, і інструменти, такі як Webpack Bundle Analyzer та вбудовані інструменти аналізу бандлів Angular CLI, спрощують цей процес. У цій статті ми розглянемо, як виконати аналіз бандлів у додатку Angular з прикладами коду та візуальними підказками.

Що таке аналіз бандлів?

Аналіз бандлів передбачає перевірку розміру та складу ваших JavaScript бандлів. Це допомагає виявити великі залежності, невикористовуваний код або неефективність у процесі побудови. Усунувши … Читати далі

Застосунок Angular працює повільно? Давайте це виправимо.

pic

Розробка з Angular — це справжнє задоволення, але іноді ми робимо помилки, про які навіть не здогадуємось. Ці помилки, накопичуючись, можуть спричинити серйозні проблеми. Продуктивність фронтенд-застосунку надзвичайно важлива, тому в цій статті я вирішив поділитися кількома простими порадами для покращення продуктивності вашого Angular-застосунку.

1. Надмірне використання Pipes

Надмірне використання Pipes є поширеною помилкою. Pipes, які виконують важкі операції, можуть виконуватись кілька разів, що погіршує продуктивність вашого застосунку.

Погано👎🏼

@Pipe({  
 name: 'expensiveCalculation',  
 pure: false  
})  
export class ExpensiveCalculationPipe implements PipeTransform {  
 transform(value: any): any {  
 // Важка логіка трансформації  
 }  
}

Добре👍🏼

@Pipe({  
 name: 'expensiveCalculation',  
 pure: true  
})  
export class ExpensiveCalculationPipe 
Читати далі

Як уникнути помилки “Max Header Size Exceeded” назавжди: Angular та JWT

Якщо ви коли-небудь стикалися з помилкою “Max Header Size Exceeded” під час роботи з Angular і JWT-автентифікацією, ви знаєте, як це може бути дратівливо. Ця помилка зазвичай виникає, коли ваші HTTP заголовки стають занадто великими, часто через те, що ваші JWT (JSON Web Tokens) перенасичені даними.

Давайте розглянемо технічні причини, чому це трапляється, дослідимо приклади надмірно великих JWT та запропонуємо практичні рішення, щоб запобігти цьому питанню в вашому додатку.

Анатомія JWT

JWT складається з трьох основних частин:

  1. Заголовок
    Містить метадані, такі як тип токена (JWT) та алгоритм підпису (HS256).
{ "alg": "HS256", "typ": "JWT" }
  1. Тіло
Читати далі

Попіл Імперії

Епізод 3: Іскри відваги

pic

Епізод : 3

Пальці Каела міцно стиснули світящийся уламок, коли броньовані воїни ринули в атаку. Його серце билося швидше, паніка охопила його, але жар-перламутровий уламок пульсував теплою енергією в його долоні, наповнюючи його неймовірним спокоєм.

Ситарион ревів, цей звук лунав крізь безлюдну галявину, як грім. Дракон рвонув хвостом, розкидаючи нападників. Але ланцюги, що тримали його крила і кінцівки, яскраво світлились, послаблюючи його силу.
"Каеле," — голос Ситариона прозвучав у свідомості Каела.
"Уламок—запусти його силу. Ти повинен допомогти мені!"

Каел вагався, не знаючи, що робити. "Я не знаю як!" — закричав він у відповідь.

"Відчуй тепло жару … Читати далі

[Технічні лекції] Код та кава: видання JavaScript

pic

Цей пост присвячений неймовірним знанням і захоплюючим виступам на тему JavaScript з усього світу у 2024 році.

Ласкаво просимо 🎉🎉🎉. Я радий розпочати свою письменницьку подорож, оскільки ми вступаємо в абсолютно новий рік, сповнений можливостей, навчання та розвитку.

1. Робочий процес розробника за допомогою штучного інтелекту від Addy Osmani (25 хвилин, 17 секунд) *

Цей виступ на JSNation US 2024 розглядає, як інструменти, що використовують штучний інтелект, змінюють програмування. Дізнайтесь про техніки швидкої ітерації, інтелектуальне налагодження і створення надзвичайного користувацького досвіду за допомогою ШІ.

2. Зрозумійте наступну фазу веб-розробки від Steve Sanderson (57 хвилин, 49 секунд)

Цей виступ з NDC

Читати далі

Перехід на TanStack Query: Сучасне управління API

pic

З розвитком проєктів і збільшенням кількості сторінок, управління запитами до бекенду для приладної панелі MobileAction стало все більш складним. Наш поточний кастомізований підхід більше не відповідає вимогам наших проєктів.

Спочатку ми використовували просту та гнучку структуру для задоволення потреб користувачів приладної панелі. Однак з часом збільшення кількості сторінок та різноманіття взаємодій користувачів зробило управління запитами даних все більш складним. Наш кастомізований підхід ускладнювався з кожною новою сторінкою та додаванням нових функцій, що призводило до зростання витрат на обслуговування та уповільнення процесу розробки. Це не тільки знижувало нашу ефективність, але й впливало на якість досвіду, який ми надаємо кінцевим користувачам.

Стикнувшись … Читати далі