login_zajety_sic
login_zajety_sic
#django #drf #python #programowanie

Jestem w trakcie nauki Django Rest Framework i zastanawiam się, gdzie umieszczać logikę niezwiązaną z bazy danych, np wywołanie zewnetrznego API na podstawie przekazanego parametru do naszego API, wykonać jakieś operacje na plikach itp itd. plik models.py nie wydaję mi się odpowiednim miejscem. W innych frameworkach tj Symfony, Laravel wiadomo gdzie takie rzeczy wsadzać ale to są framworki typu MVC a django jest MVT i ciut się zgubiłem.
  • Najlepsze
  • Wszystkie komentarze
L.....k
L.....k
Django nie jest MVT jeżeli uzywasz resta
Zrób se jakieś utilsy i tam ładuj te funkcje
Tank1991
mam coś takiego,


@IamHater: to je bardzo dobre :O rzuciłem okiem na to co napisane jest o servicach (tego porzebuje op) i przyznam że pierwszy raz widze senior level guide do drfa/django/pythona.

na selektory sam wpadłem jakiś czas temu i nazywam je queries
egoistyczny_logistyk
@login_zajety_sic: czasem nazywa się takie cuś "Services" i pod tym takim hasłem próbować googlować, np. https://breadcrumbscollector.tech/how-to-implement-a-service-layer-in-django-rest-framework/ - nie mniej to podejście nie różni się tak na prawdę niczym od wspomnianego przez Ciebie pliku create_file.py, poza konwencją nazewniczą.
CancerLight
@login_zajety_sic jeżeli chcesz zachować klasowosc tego co piszesz rzuć okiem na bibliotekę uplink do uderzania w zewnętrzne api
IamHater
@login_zajety_sic mam coś takiego, jest tam o best practices jeżeli chodzi o business logic w drf https://github.com/HackSoftware/Django-Styleguide

Nie ręczę czy to jest top-notch, to by musiał @Lunatik powiedzieć czy legit xd
IamHater
@login_zajety_sic dokładnie, jeszcze selectors oddzielnie jak ci rośnie
login_zajety_sic
login_zajety_sic
@Lunatik: Fakt. django jest MVT, ale nie rest. Czyli co, nie ma konkretnego miejsca na takie rzeczy, wrzucam sobie to oddzielny plik np "create_file.py" i sobie to importuje tam gdzie chce to wykorzystac?
login_zajety_sic
login_zajety_sic
@egoistyczny_logistyk: natknąłem się na te services w jednym z wątków na reddit gdzie był poruszany temat jak robić duże aplikacje w DRF i tam też właśnie wspominają aby wykorzystać to na takie rzeczy które totalnie nie pasują do umieszczenia tego w modelach

@CancerLight: zewnetrzne api dałem akurat jako przykład ale zapisuje sobie bo może się to przydać :)

@IamHater: Ten link dosyć sporo mi wyjasnia w
login_zajety_sic
login_zajety_sic
@Tank1991: Tak, bardzo fajnie opisane i wyjaśnione aby nie było wątpliwości po przeczytaniu tego.
Myndel
@IamHater: Jest jakiś zbiór tego typu dobrze napisanych i wyjaśniających "good pracites"?
IamHater
@Myndel: szczerze - nie znam xD tzn. do django per se jest masę, ale konkretnie dla drf już więcej szukania pod kątem własnej implementacji
L.....k
L.....k
@IamHater: Fajne, trochę głupot powypisywanych odnośnie testowania/konfiguracji, ale ogólnie daje rade. Wyslalem im dosc obszerny feedback w ankiecie - ciekawe czy poprawią.