Predchádzajúce roky boli komplikované kvôli pandémii COVID-19, takže mnohé konferencie sa počas týchto ťažkých čias konali len online. Našťastie, ja a môj priateľ Marek sme mali možnosť zúčastniť sa DjangoCon 2022. DjangoCon sa konal v Portugalsku, čo bola pre nás oboch ďalšia motivácia navštíviť túto krásnu krajinu, keďže sme tam študovali.
Týmto blogom by sme chceli stručne poukázať na prednášky a informácie, ktoré nás zaujali najviac.
Deň 1
Prvý deň bol veľmi zaujímavý, stretli sme mnohých podobne zmýšľajúcich ľudí, ktorí používali rovnakú technológiu na vývoj. Takže sme s nimi mali veľa spoločných tém. Skoro ráno sme sa zaregistrovali na prednášky, ktoré pre nás boli pripravené a začali sa takmer okamžite bez akýchkoľvek prestávok.
Skryté klenoty Django Admin. Časť 1.
Prednášajúci: Maxim Danilov
Musíme povedať, že Django admin je naozaj mocný nástroj. Maxim Danilov rozprával o vylepšeniach, ktoré môžu byť použité na prácu s django admin, aby nám práca s týmto nástrojom bola jednoduchšia.
ModelAdmin auto registrácia
Je možné prepísať takmer všetky časti django admin. Model Admin auto registrácia je zaujímavá v tom, že nemusíte registrovať každý admin časť manuálne, takže je to tiež šetrí čas.
from django.contrib.admin import apps as adminApps, sites
class AdminConfig(adminApps.AdminConfig):
default_site = 'admins.admin.WpAdminSite'
def ready(self, *args, **kwargs):
super().ready(*args, **kwargs)
site = sites.site # changed with multiple admin sites
site._register = {} # remove old registrations
for config in apps.get_app_configs():
admins = getattr(config.module, 'admin', None)
for model in config.get_models(): # excluded auto_created and swapped
model_admin = getattr(admins, f'{model.__name__}Admin', None)
if model_admin and not site.is_registered(model):
site.register(model, model_admin)
S vlastnou autoregistry admin konfiguráciou nemusíte registrovať každý model.
Namiesto tohto:
from django.contrib.admin import ModelAdmin
from core.models import Shop
@admin.register(Shop)
class ShipAdmin(ModelAdmin):
list_display = ('title',)
Admin súbor bude vyzerať takto:
from django.contrib.admin import ModelAdmin
class ShipAdmin(ModelAdmin):
list_display = ('title',)
Django admin API
Aby ste sa vyhli manuálnemu vytváraniu API pre jednoduché stránky, je možné vrátiť django admin odpoveď ako json.
Jednoduché riešenie:
class JsonizedAdminSite(AdminSite):
def index(self, request, *args, **kwargs):
response = super().index(request, *args, **kwargs)
return JsonResponse(response.context_data,
status=response.status_code,
encoder=MyJsonEncoder)
Admin index kontext stránky bol vrátený ako json. Maxim tiež zdieľal riešenie na prepísanie celého model adminu, aby bol použitý ako API.
Maxim rozprával o ďalších zaujímavých a užitočných tipoch ako:
- Ako zoradiť admin aplikácie na dashboarde
- Ako pracovať s auto registráciou viacerých site adminov
- Ako zrýchliť django admin a zabrániť volaniu rovnakých metód viackrát za jeden request
Video z prezentácie: https://youtu.be/HJfPkbzcCJQ
Kagi - Viacfaktorová autentifikácia
Prednášajúci: Justin Mayer
Naozaj výkonný balíček pre viacfaktorovú autentifikáciu bol spomenutý Justinom Mayerom počas jeho zaujímavej prezentácie. Kagi je užitočný nástroj na pridanie viacfaktorovej autentifikácie (MFA) do Django v priebehu niekoľkých minút. Prezentoval rýchle riešenie na inštaláciu a konfiguráciu kagi pre nový projekt.
Video: https://youtu.be/aannTf_z1XU
Django Ninja
Prednášajúci: Vitaliy Kucheryaviy
Django Ninja vyzerá byť extrémne zaujímavý Django rest framework, ktorý ma prekvapil rýchlosťou, integráciou a peknou dokumentáciou. Osobne som ho ešte netestoval. Ale počiatočná implementácia, výsledky testov a porovnanie s ostatnými rest frameworkmi, ktoré boli prezentované počas prezentácie, boli úžasné.
Django Ninja Benchmark
Ako môžete vidieť z porovnania, vyzerá to, že je oveľa rýchlejší ako Django Rest Framework alebo Flask+marshmallow, takže by som ho naozaj rád otestoval a videl, aký je výkonný.
Video: https://youtu.be/zpR1QCLBpIA
Deň 2
Lepšia správa i18n a PO súborov
Prednášajúci: Felix Mino
Django internacionalizačný proces môže byť niekedy naozaj ťažko udržiavateľný, pretože PO súbory, ktoré sa používajú na preklad v Django, môžu dosiahnuť obrovskú veľkosť. Takže môže byť ťažké alebo môže trvať dlho preložiť väčšie stránky. Felix Mino nám povedal o tom, ako standardizovať proces prekladu stránok a ako sa vyhnúť veľkým nečitateľným súborom. Okrem toho nám ponúkol oveľa viac informácií vo svojej prezentácii.
Záver
Prvé dva dni DjangoCon 2022 boli plné cenných poznatkov a praktických tipov. Od Django admin optimalizácií až po moderné REST framework alternatívy, konferencia poskytla vynikajúce príležitosti na učenie. Zostaňte naladení na Časť 2, kde pokryjeme ďalšie vzrušujúce prezentácie zo zostávajúcich dní!


