Тёмный

Django-Ninja APIs - Modern API Development in Django 

BugBytes
Подписаться 27 тыс.
Просмотров 17 тыс.
50% 1

Github: github.com/bugbytes-io/django...
In this video, we'll build an API using Django-Ninja that allows us to fetch devices, fetch locations, and assign a location to a device.
This video will show django-ninja's use of Schemas - subclasses of Pydantic BaseModels - and the use of decorators to create API endpoints.
☕️ 𝗕𝘂𝘆 𝗺𝗲 𝗮 𝗰𝗼𝗳𝗳𝗲𝗲:
To support the channel and encourage new videos, please consider buying me a coffee here:
ko-fi.com/bugbytes
📌 𝗖𝗵𝗮𝗽𝘁𝗲𝗿𝘀:
00:00 Intro
01:25 Setting up Django project in Python virtual environment
03:46 Creating models for IoT Devices
07:46 Adding Data in Django Admin
09:11 Creating Schemas with django-ninja
12:04 Creating django-ninja API endpoints
17:39 Automatic Swagger docs with django-ninja
18:32 Adding Device Detail endpoint with path-parameter
21:07 POST endpoint for adding new devices
33:29 Add endpoint to re-assign location to device
39:19 Adding django-cors-headers to project
𝗦𝗼𝗰𝗶𝗮𝗹 𝗠𝗲𝗱𝗶𝗮:
📖 Blog: bugbytes.io/posts/
👾 Github: github.com/bugbytes-io/django...
🐦 Twitter: / bugbytesio
📚 𝗙𝘂𝗿𝘁𝗵𝗲𝗿 𝗿𝗲𝗮𝗱𝗶𝗻𝗴 𝗮𝗻𝗱 𝗶𝗻𝗳𝗼𝗿𝗺𝗮𝘁𝗶𝗼𝗻:
Django-Ninja: django-ninja.dev/
ModelSchema: django-ninja.dev/guides/respo...
Django-Ninja Request Body: django-ninja.dev/guides/input...
AutoSlugField: django-extensions.readthedocs...
#python #webdevelopment #django #pydantic

Опубликовано:

 

25 июн 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 76   
@AmoahDevLabs
@AmoahDevLabs 5 месяцев назад
Oh wow. I can't believe you're doing a vidoe on Django-ninja again. Thanks very much.
@bugbytes3923
@bugbytes3923 5 месяцев назад
Thanks for the support!
@dmitrymikhailovnicepianomu8688
@dmitrymikhailovnicepianomu8688 5 месяцев назад
Thank you! Can’t wait to see the continuation.
@bugbytes3923
@bugbytes3923 5 месяцев назад
Thanks a lot!
@dowletaydogdyyew6360
@dowletaydogdyyew6360 3 месяца назад
Absolutely amazing video, I already fell in love with Django-Ninjas. Thank you so much!
@bugbytes3923
@bugbytes3923 3 месяца назад
Glad to hear that, thanks so much!
@seydinaoumarsamabaly1806
@seydinaoumarsamabaly1806 5 месяцев назад
I have learned django-ninja on this channel, but I can say this another level. Thank you so much man !
@bugbytes3923
@bugbytes3923 5 месяцев назад
Thanks a lot man!!
@ahmedivy
@ahmedivy 5 месяцев назад
The only thing i miss in fastapi was django like orm, and this was perfect
@bugbytes3923
@bugbytes3923 5 месяцев назад
Yes! The Django ORM cannot be beaten!
@anago7
@anago7 5 месяцев назад
I respect you seriously. In my previous company, we introduced Django-ninja. And integrated with Flutter for frontend. Your contribution to django ninja is very impressive. Also I think you have a stubborn philosophy about your works and I advocate it.
@bugbytes3923
@bugbytes3923 5 месяцев назад
Thanks a lot for this comment, really appreciate it! I hope django-ninja served your purposes in the previous company - would love to explore Flutter in future videos.
@sebwylleman
@sebwylleman 5 месяцев назад
Another banger, love the consistency of this channel
@bugbytes3923
@bugbytes3923 5 месяцев назад
Thanks a lot!
@fabsync
@fabsync 5 месяцев назад
super awesome man! Love always your approach. Looking forward to more videos on this series.. !
@bugbytes3923
@bugbytes3923 5 месяцев назад
Thanks a lot man!
@stephancodes
@stephancodes 5 месяцев назад
I really like django extension to populate the slug automatically. I normally created the prepopulated fields in the model admin, but this is much cleaner
@bugbytes3923
@bugbytes3923 5 месяцев назад
It's a cool field, for sure!
@theintjengineer
@theintjengineer 5 месяцев назад
BugBytes' Videos are soo goood🤯🤯
@bugbytes3923
@bugbytes3923 5 месяцев назад
Thanks so much!
@blees123
@blees123 5 месяцев назад
This is amazing work, keep up the great content.
@bugbytes3923
@bugbytes3923 5 месяцев назад
Thanks a lot! Will try my best :D
@robhafemeister3100
@robhafemeister3100 5 месяцев назад
Amazing how much and how fast I have learned from your videos. I really like django-ninja, FastAPI with the Django ORM.
@bugbytes3923
@bugbytes3923 5 месяцев назад
Thanks a lot Rob! And yeah, they're all great options.
@mahmoudtokura
@mahmoudtokura 5 месяцев назад
This was beautiful to watch. I have always struggled with DRF; this will be my new go-to framework. It allows you to code as you picture it without restrictions or being overly opinionated. In my opinion, this is more pythonic.
@bugbytes3923
@bugbytes3923 5 месяцев назад
Thanks for watching! Agreed - more Pythonic and a nicer dev experience!
@leoe.r.7338
@leoe.r.7338 5 месяцев назад
Great tutorial.
@bugbytes3923
@bugbytes3923 5 месяцев назад
Thanks a lot!
@aashayamballi
@aashayamballi 5 месяцев назад
thank you!
@bugbytes3923
@bugbytes3923 5 месяцев назад
Thanks a lot for watching!
@haseeb9621
@haseeb9621 5 месяцев назад
@swelanauguste6176
@swelanauguste6176 5 месяцев назад
Thank for the video. I have been waiting for a Django Ninja update video. Could you please do a video on django-extensions and Django-extras, I have seen you using it a few times
@bugbytes3923
@bugbytes3923 5 месяцев назад
Thank you. For sure, django-extensions would be worth covering in more detail - thanks for the suggestion!
@frameff9073
@frameff9073 5 месяцев назад
thank you
@bugbytes3923
@bugbytes3923 5 месяцев назад
Thanks for watching!
@deymonster2u
@deymonster2u 5 месяцев назад
Very cool and simple! When will be the next video with React?
@bugbytes3923
@bugbytes3923 5 месяцев назад
Thank you! I think the follow-up video will be on Saturday!
@aek64
@aek64 5 месяцев назад
Greate video. I don't know how to make the api calls more secure. Can you use the built-in users that always exist in a Django site? I would love to see this in the next video because security is needed even for basic API:s. Maybe someone has a link to share how it is done.
@jhalmu
@jhalmu 5 месяцев назад
Thanks for wideo, I needed this. One question: What diffrence is use django-extras/extensions slug vs djangos slug.field?
@jamoinmoin
@jamoinmoin 5 месяцев назад
I don't quite see the benefit of Ninja & Schemas over DRF & serializers. Am I missing something?
@sagiyoav
@sagiyoav 5 месяцев назад
Following
@bugbytes3923
@bugbytes3923 5 месяцев назад
My understanding from reading opinions on reddit and other sites - is that a lot of people find serializers/views in DRF quite confusing when you need to go beyond basic CRUD stuff. I think there's a bit of a learning curve to understand its nuances, but I personally love DRF, and of course many others do too. I guess Ninja is just a different approach with less "magic" in the views.
@shintaii84
@shintaii84 4 месяца назад
Async async async!
@keyton_weissinger
@keyton_weissinger 5 месяцев назад
Great video! Thank you. This looks like a great alternative to DRF to add a REST api to an existing Django app, no?
@bugbytes3923
@bugbytes3923 5 месяцев назад
Thanks a lot Keyton! That's exactly the use-case I think - if you have a Django app (or want to create one) that needs an API, then this is a nice alternative to DRF!
@codelabspro
@codelabspro 4 месяца назад
Can you do a video on authentication with Django-ninja please
@chengsu8270
@chengsu8270 4 месяца назад
I need authentication too. Thank @bugbytes3923
@CristianMolina
@CristianMolina 5 месяцев назад
Thanks for the video! One question: There are _2_ "get_devices" methods, for devices and locations endpoints but it still works, I assume because of the decorator but the 2nd method doesn't override the first one?
@bugbytes3923
@bugbytes3923 5 месяцев назад
Yeah, this was a mistake (corrected in the django-ninja-extra video) - the second function should be called "get_locations()". It must work due to the decorator wrapping the function!
@kingbabu7373
@kingbabu7373 5 месяцев назад
In django dynamic addcontanct button using htmx how to get single submitt button to submit multiple forms to database
@theintjengineer
@theintjengineer 5 месяцев назад
In the Schema for Location, you have 'id', 'name'. I get the name part, since it's defined on the model. I also get the id on the Device Schema, since that's also on the Device Model. I just don't get where the id for the locations is coming from, since location has only a single field called 'name'. Thank you, BugBytes 🙌🏽
@steogen
@steogen 5 месяцев назад
I believe the id field is added to all models by default. No need to be set up by the user. It’s necessary for the database to establish a unique primary key for each instance of the model
@theintjengineer
@theintjengineer 5 месяцев назад
@@steogen, oooooh; and he explicitly sets up the id field for Device using uuid4 because he didn't want to have just a simple integer as the id for the devices, right? I get it now. Thank you very much. You're a good person🤝🏾
@steogen
@steogen 5 месяцев назад
@@theintjengineer that’s my understanding too. Glad I could help ☺️
@richcodesweb
@richcodesweb 5 месяцев назад
Trying to create Many-to-Many relationships, you'd have thought that you'd do it in a similar way, `list[str]` but when I try this, I always get an error, saying that fields are missing, that don'e even appear in the schema, or the model ....
@DhavalAhir10
@DhavalAhir10 5 месяцев назад
Now No need of Django Rest Framework?
@dimasarestu2043
@dimasarestu2043 5 месяцев назад
Can i use it for existing django app?
@bugbytes3923
@bugbytes3923 5 месяцев назад
Yes, definitely!
@marcosaugustoschultzwutke6670
@marcosaugustoschultzwutke6670 5 месяцев назад
Hello! I'm having difficulty connecting django 5.0 with the oracle 11g database. Do you know of any solution for this?
@bugbytes3923
@bugbytes3923 5 месяцев назад
I've not connected Django to Oracle for a while, so not sure what the issue is - sorry! Do you have any errors/exceptions that you're seeing?
@leftblank5315
@leftblank5315 5 месяцев назад
Please make sure the Instant Client is installed and in the path
@marcosaugustoschultzwutke6670
@marcosaugustoschultzwutke6670 5 месяцев назад
The Instant Client is installed and in the correct path. I have a Laravel application using Instant Client and it works perfectly. I read that Django 5 only works with Oracle version 19 or higher.@@leftblank5315
@seydinaoumarsamabaly1806
@seydinaoumarsamabaly1806 5 месяцев назад
Hey, to connect Django higher than 3 to oracle you may need Oracle 19c or higher. If you want specifically use your Oracle 11g, you have to downgrade to Django 3.2 or 3.1 or 3.0. Hope this helps !!!
@marcosaugustoschultzwutke6670
@marcosaugustoschultzwutke6670 5 месяцев назад
Thank you.@@seydinaoumarsamabaly1806
@Septumsempra8818
@Septumsempra8818 5 месяцев назад
Any CI/CD vids coming? I need to know the best strategies to update the database of a production site. Most tuts teach how migrations works and usually just delete them all (even in sql table) when they make a mistake. However, what's the process of taking a prod site, making a whole bunch of migrations (eg. Running field by field indexing effects on speed test) then once the desired migration is found, how do you ensure that only one migration file is created with only the final desired migration set? I like this one-file migration process, but it might not be the best way. Any suggestions on how to optimize migration workflows so as to keep up rolling out new features.
@meesix
@meesix 5 месяцев назад
Thank you for promoting Ukrainian products!
@bugbytes3923
@bugbytes3923 5 месяцев назад
Thanks a lot! :)
@leftblank5315
@leftblank5315 5 месяцев назад
I guess FastAPI is no longer modern?
@bugbytes3923
@bugbytes3923 5 месяцев назад
FastAPI is what I'd think of when talking about "modern" Python API frameworks - so yes, I'd say it is! Django-Ninja brings that approach to Django.
@leftblank5315
@leftblank5315 5 месяцев назад
@@bugbytes3923 my post was a bit sarcastic. It seems everyday there is a new framework. My point is, why would I learn yet another one, when FastAPI is well-established and is here to stay? Not to mention the author of Ninja is mixing politics into his work
@bugbytes3923
@bugbytes3923 5 месяцев назад
​@@leftblank5315 This is specifically for Django apps that might need APIs. If you have a Django app - better to keep your API in Django, make use of the models/ORM, and avoid having a separate FastAPI app just to expose an API over the same data model. Ninja gives an alternative over Django REST Framework for developers that are familiar with, or prefer, the Pydantic/FastAPI way of doing things. Not much new to learn tbh, if you're already a fan of FastAPI. But remember, there are many thousands more web apps running Django than FastAPI - so ninja gives an easy way of migrating towards these new approaches without ditching Django entirely. No idea about the politics of the author. He's Ukrainian I believe, so ....
@leftblank5315
@leftblank5315 5 месяцев назад
@@bugbytes3923 it makes sense in the context of Django. I've used DRF for years.
Далее
Django & HTMX - Dynamic Form Creation and Submission
24:36
小路飞被臭死啦!#海贼王#路飞
00:27
Просмотров 2,1 млн
Why You NEED To Learn FastAPI | Hands On Project
21:15
Просмотров 149 тыс.
FastAPI, Flask or Django - Which Should You Use?
9:49
PLEASE Use These 5 Python Decorators
20:12
Просмотров 98 тыс.
小路飞被臭死啦!#海贼王#路飞
00:27
Просмотров 2,1 млн