Тёмный
Tom Dekan
Tom Dekan
Tom Dekan
Подписаться
I make videos about software and AI to take you to the next level.

At the same time, I'm creating my next product - an entirely visual designer to make building frontend much, much faster.

You can see all my written guides and articles (as well as my product) at photondesigner.com/?ref=yt-tomdekan
Want to ship faster? Spend money 💰
1:15
Месяц назад
Django: Stream your voice clone 🎼
11:32
2 месяца назад
For founders: 1 mistake about growth ☘️
1:41
2 месяца назад
Django Ninja - The new DRF killer?! 🥷
10:35
2 месяца назад
Add AI suggestions to Django 🗯
8:11
3 месяца назад
How I cloned my voice 💬
4:07
4 месяца назад
Add user comments to Django in 9 mins 🧵
8:11
4 месяца назад
Easily add Tailwind CSS to Django 💨
9:17
6 месяцев назад
Django app killer: Query in for-loop 🌪️
2:40
6 месяцев назад
Build a Django AI colorization app 🎨🦾
11:06
7 месяцев назад
Комментарии
@lokilivehai
@lokilivehai 15 часов назад
It helps me a lot. Thanks ❤
@redblues9566
@redblues9566 4 дня назад
Wow. Great. thanks.
@perronemirko
@perronemirko 8 дней назад
Good tutorial, but please mate buy a better mic.
@tomdekan
@tomdekan 6 дней назад
Thanks @perronemirko 🙂 I have since bought a better mic
@christelorsaoure-jf3ne
@christelorsaoure-jf3ne 8 дней назад
Thanks for this video♥. Please, I want to ask you, how deploy django ninja api for production ?
@tomdekan
@tomdekan 2 дня назад
Hi Christelor - I just wrote a guide in response to your comment and mentioned you. Here it is: www.photondesigner.com/articles/deploy-ninja
@christelorsaoure-jf3ne
@christelorsaoure-jf3ne День назад
@@tomdekan Thanks for your response. You're a great guy
@tomdekan
@tomdekan 17 часов назад
Thanks @@christelorsaoure-jf3ne- you're welcome!
@EfeRoy
@EfeRoy 11 дней назад
can this work on a react js frontend
@tomdekan
@tomdekan 6 дней назад
Yes 👍
@Seecret0602
@Seecret0602 15 дней назад
Very good video and well explained :D
@tomdekan
@tomdekan 6 дней назад
Thanks and glad you liked it 🙂
@Jeremy.Beutler
@Jeremy.Beutler 20 дней назад
Thank you, this is very helpful for leveraging the power of both vue and django. One question: Does localstorage leave a security vulnerability since the user can modify its state?
@tomdekan
@tomdekan 6 дней назад
You're welcome 🙂 If you just used local storage (as in the local storage on the browser) you might create a security issue that you'd need to handle. However, we don't do that in the guide. In the guide, we use: 1. session storage. This sets a httpsecure cookie that only servers can modify (e.g., we make a request to Django from vue to set it, but vue can't access it. 2. csrftoken. This is a random token that django sends to vue to check that only ouor intended site (our vue app) is accessing Django. Vue can access this, but django is expecting a certain csrftoken back. The csrftoken contains no sensitive data and changing it would cause django to throw an error.
@breaktimerts7074
@breaktimerts7074 23 дня назад
wow, how to make such a smooth cursor animation on macos?
@tomdekan
@tomdekan 22 дня назад
Screenstudio
@color4bg
@color4bg 23 дня назад
Super thank you for such detailed and nice tutorial 👏
@tomdekan
@tomdekan 19 дней назад
You’re welcome 😊
@Investigamer
@Investigamer 28 дней назад
Have been using django ninja for some time now, it really is an amazing way to build API's. My weakspot has always been frontend, so now I'm trying to shore up my experience with JS technologies (mainly react, since its the only framework I've spent any real time on). Thanks for the awesome video, keep it up! More people need to know about Django Ninja 🚀
@tomdekan
@tomdekan 19 дней назад
Glad to hear that you found it useful and I agree :)
@PaulRobson-p1y
@PaulRobson-p1y 29 дней назад
Is it possible to implement the auth_receiver without resorting to @csrf_exempt which reduces security?
@tomdekan
@tomdekan 27 дней назад
Cool question. To avoid removing the csrf except is possible but depends on what Google allows. Django generates the csrf token and then Google sends a request to Django. So to keep using that csrf token, you would need to send the csrf token to Google and then have Google also send that csrf token when it sends a request to auth receiver. So check out the Google docs to see what Google allows and let me know. One thing to note: This will add significantly higher complexity beyond the tutorial.
@Kathmandu-nv7dd
@Kathmandu-nv7dd Месяц назад
I would definately love to see how it can be deployed .Thanks
@tomdekan
@tomdekan Месяц назад
Thanks for that. Noted!
@abdrahim9307
@abdrahim9307 Месяц назад
this is soo good
@tomdekan
@tomdekan Месяц назад
Thanks abdrahim!
@richard46966
@richard46966 Месяц назад
Does the script still work?
@tomdekan
@tomdekan Месяц назад
It should do! Try it out
@anzilcutzz3148
@anzilcutzz3148 Месяц назад
Hi Tom, I like the style of photondesigner's auth page, can you give the code for it ? please
@tomdekan
@tomdekan Месяц назад
Hi Anzil. I’m not going to post the source online due to the effort required to separate it from Photon Designer. However, feel free to copy the page source from your browser! You should be able to replicate it that way.
@thumbthrasher
@thumbthrasher Месяц назад
Hi Tom, thank you for this great video, found out that its not working in Firefox though due to a bug a in Firefox prevents it from loading source maps for WebExtensions (discovered when trying to log in)
@tomdekan
@tomdekan Месяц назад
You’re welcome and thanks for the info. Is the source maps bug in Firefox related to using Tailwind?
@ahmadumar9387
@ahmadumar9387 Месяц назад
hi tom, why didn't you use alpine js for frontend... it would be smoother :)
@tomdekan
@tomdekan Месяц назад
Alpine.js is great! I wanted to use React here for the situation where you need a much more robust frontend. Alpine is great for embedding in a backend that serves HTML. But, in this instance, I am using Django Ninja to return JSON, so Alpine wouldn't be the right choice. Let me know if you've any more questions.
@ahmadumar9387
@ahmadumar9387 Месяц назад
@@tomdekan thanks for your reply... i couldn't understood the part of stability 😅, because alpine.JS didn't use vDom, while react does :) alpineJS works similiar like vue, but faster and leighter, it also fetch API, it's whole x-data based on API... or did i missunderstood your point?
@tomdekan
@tomdekan Месяц назад
Almost! Some benefits of React v Alpine are: - it handles higher complexity more easily. For example, There are neat ways to put React code in components and handle lifecycle. This is strongly advantageous after you pass a certain complexity. - React has many more packages and support. This means you can do certain things much faster because other people have already written great packages for you, eg React Framer Motion.
@MamboslilMicroscope
@MamboslilMicroscope Месяц назад
pheeeew, the stuff on flowbite wasnt working, then i watched this. you are a life saver
@tomdekan
@tomdekan Месяц назад
Glad to hear it :)
@ChowdhuryMaksud
@ChowdhuryMaksud Месяц назад
It would be great if you could provide the GitHub link 🙏🙏
@pipinstallpython
@pipinstallpython Месяц назад
Hey Tom, attempted to find an email to reach out but wasn't able to but it looks like you respond to most comments so I'm hoping this message reaches you. I've been working on a Django, ninja, corse, all auth authentication system for a while. Currently in production I have a mobile first docker container which runs a flask app for mainly hosting the dash framework and on the backend I have that Django application also wrapped in a docker container with all I had mentioned. I've been trying to setup authentication from my flask server into my Django server remotely for users but I've ran into a few issues and resolved many others. Noticed a lot of comments in your ninja video are people interested in a video of how to set up authentication via ninja. I've also seen some of your prior work with authentication and read some of your other articles of similar nature. Your really talented, I'm recently getting back into making videos after a two years absence and am in the programming industry. Just wanted to reach out as I think we could help each other, have some initial code for this ninja authentication system Id like to get an opinion on and maybe we can find a place for us to collaborate on building a useful tutorial for the Django community. Reach out if your available or interested, would like to talk more. pipinstallpython@gmail.com, reference dash.geomapindex.com, geomapindex.com, piratesbargain.com and github.com/pip-install-python
@dojjy5798
@dojjy5798 Месяц назад
Amazing, freshly baked 2 months ago. Needed it for a company project where we run some automatic script in the background when new task arrived. Thank you! Also benefited a lot from your google login video.(Although I had a GSI_LOGGER error, I saw some commented on your original video which is still not solve, so I am using the old google login API at the moment).
@tomdekan
@tomdekan Месяц назад
Awesome - great to hear 😊 On the Google login video, I updated the written guide 2 days ago to fix the GSI_LIGGER error (Google no longer allows redirect with Django). Check out the link in the Google video!
@dojjy5798
@dojjy5798 Месяц назад
@@tomdekan OMG this is like christmas. Thank you.🔥
@tomdekan
@tomdekan Месяц назад
Haha - you’re welcome :)
@RobertoMaurizzi
@RobertoMaurizzi Месяц назад
If (and when!) you need a scheduler, check rq-scheduler instead of Celery
@tomdekan
@tomdekan Месяц назад
Thanks Roberto. Agree on the if!
@cryptosharx
@cryptosharx Месяц назад
I use celey, redis, docker! Please make a detail video on this, what should be a better alternate?
@tomdekan
@tomdekan Месяц назад
Good suggestions! I might make another short saying the simple tools that I tend to use.
@destinyefe8996
@destinyefe8996 Месяц назад
🎉
@tomdekan
@tomdekan Месяц назад
⭐️💫
@chideraokosa9722
@chideraokosa9722 Месяц назад
Hello, thanks for the content, is it possible to invoke the local gateway asynchronously
@tomdekan
@tomdekan Месяц назад
You are welcome! What do you mean by “local gateway” here?
@DesktopChronicles
@DesktopChronicles Месяц назад
Valid points. Thank you for sharing your honest thoughts openly.
@tomdekan
@tomdekan Месяц назад
My pleasure. Glad you liked it 🙂
@pauloandrade3375
@pauloandrade3375 Месяц назад
This library is not safe. IT broken (shut down) my application in production. Be aware. After I install it no comande works in terminal anymore. I can't solve it. I trying hard
@tomdekan
@tomdekan Месяц назад
Hi Paulo. I'm not sure what you meanby "not safe" here. The package that I'm using is the official Google python package - I'm pretty confident that it is safe!
@gtraqs_
@gtraqs_ Месяц назад
Hi Tom, thank you kindly for this video. I was wondering if you could talk about two topics: - Auth considerations with django ninja. Common security pitfalls especially. - A walkthrough of deploying django to prod. Thanks!
@tomdekan
@tomdekan Месяц назад
You’re welcome and great suggestion! Might make a few good shorts. Thanks 🙂
@jeswer9
@jeswer9 Месяц назад
Thanks, been struggling for this the entire day, until your video. It made sense. I had 2 x-csrftokens, that's why it didn't work. Also apparently there's a difference between axios, fetch and axios.get vs axios({method: 'get' } ) ... The method:' get' verison works the other doesn/t
@tomdekan
@tomdekan Месяц назад
Great it helped! CSRF tokens can be tricky 🙂
@sahanaparasuram1948
@sahanaparasuram1948 Месяц назад
Hey this is a great tutorial! I was able to follow along up until the part where we needed to edit the views file. The lines from google.oauth2 import id_token, from google.auth.transport import requests were giving me an error where it said that google.oauth2 and google.auth.transport could not be resolved by pylace. I'm assuming that I need to download these modules or something like that but I'm not able to find the right commands to do this. I'm currently coding on VS code on a mac book. I would really appreciate it if you could help me out :) thank you!
@sahanaparasuram1948
@sahanaparasuram1948 Месяц назад
Hey! I actually figured out how to fix that issue, thank you! however I'm running into another issue where, when I click the sign in with google button on the sign_up page, it takes me to a blank document - not sure what's going on :(
@tomdekan
@tomdekan Месяц назад
Thanks Sahana. I've just looked into this today, found the problem, and fixed it. Google now doesn't allow the redirect option in the local dev environment. You'll just need to: 1. Change your HTML code to use "popup" rather than redirect 2. Add the two lines I mention in the settings.py file to allow popups to redirect to Django. 👉 See the full instructions in the updated article: www.photondesigner.com/articles/google-sign-in?ref=yt
@sahanaparasuram1948
@sahanaparasuram1948 Месяц назад
@@tomdekan Great, thank you so much for looking into this and helping out, really appreciate it!
@tomdekan
@tomdekan Месяц назад
You’re welcome Sahana. Thanks for your comment
@dmccallie
@dmccallie Месяц назад
Honest question from newbie developer. I use rsync to push my project to the VPS, and then run docker compose up. Site is deployed in seconds. Admittedly it took awhile to work out the Dockerfile and the Caddyfile details and to initially install Docker (Snap), but once that’s settled, it seems as easy as using a PAAS service? What am I overlooking?
@tomdekan
@tomdekan Месяц назад
Thanks for the question and glad that your setup is working well. The two main costs are: 1. setting up infrastructure (which you've already paid), and 2. maintaining your infrastructure (which you'll continue to pay). There will likely be issues in the future, e.g., Docker will need updating, something will fail in your setup, etc., (hard to predict now). With your setup, you'll continue to pay the costs of being the infrastructure engineer in charge of this. For me, I'd rather outsource this to a paid service, and maximise the time I can spend building product / adding customer value, rather than maintaining infrastructure. For you, I'd recommend not worrying about this point now that you've set up your infrastructure. I'd recommend that you focus on building things that add value to your users instead 🙂
@alexdin1565
@alexdin1565 Месяц назад
Sorry Tom im one one from older fans, but im in country we work 12 hour for $4 a day , so not anyone can spend money
@tomdekan
@tomdekan Месяц назад
Hi Alex - yeah absolutely. There’s a big “if” on this video. There are lots of places where $7 is too much. My general suggestion is for developers not to prioritise spending time over money, where they can afford to do so.
@forrestgump8312
@forrestgump8312 Месяц назад
Hey man! This tutorial is perfect RIGHT ON THE MONEY for this topic. THANK YOU very much for taking your PERSONAL TIME to make these videos! PS! At this fucking JUICY and EPIC level that the actual content of your video is, things like mic-quality, audio compression, and (meh) maximizing UI-space for us poor short-sighted people are the only things I can think of making this a 9.8 / 10. Well played, sir! All the best <3
@tomdekan
@tomdekan Месяц назад
You're welcome 🙂 And thanks a lot for that feedback! I've upgraded mic-quality, audio compression, and UI-space in my recent videos. Glad to hear that the content was good enough for the low-quality of these things in this video. Let me know if you've got any other suggestions 🙂
@illuposerioso
@illuposerioso Месяц назад
this is exacty what i was lookin for.. thanks mate!!
@tomdekan
@tomdekan Месяц назад
Great. You're welcome!
@nelsonberm3910
@nelsonberm3910 Месяц назад
great tutorial would love to see the second part. If anyone is getting an error """ Import "django.db" could not be resolved from sourcePylancereportMissingModuleSource (module) django """ Then the problem is that you have to create your virtual enviornment before deploying django, you would need to do python -m venv venv source venv/bin/activate in the terminal and then the deployment part
@tomdekan
@tomdekan Месяц назад
Thanks Nelson! I've just posted the written guide here for part 2 (including auth): www.photondesigner.com/articles/react-auth . Video coming soon 🙂
@bravenick
@bravenick Месяц назад
How does watcher works when application is being deployed? Meaning, do I need to do something extra with gunicorn and nginx?
@tomdekan
@tomdekan Месяц назад
No; you just deploy pure css. Tailwind only runs in development, converting your Tailwind CSS to pure CSS on development.
@bravenick
@bravenick Месяц назад
@@tomdekan Thank you!
@tomdekan
@tomdekan Месяц назад
@@bravenick Welcome 🙂
@hassaanhameed
@hassaanhameed Месяц назад
thanks ! django + vue or django + react what you suggest ?? I'm new in web i tried react in school I messed by jsx code
@tomdekan
@tomdekan Месяц назад
Both are good. I prefer Vue, but React has more features and libraries. For getting a job, I'd say that learning React is slightly more helpful, as many more people use it.
@zidayouzi
@zidayouzi Месяц назад
Thank you ! I'm looking forward to your updated part 2 , including how to deploy both to production , add authentication 🙂
@tomdekan
@tomdekan Месяц назад
You're welcome. I've just posted the written guide here (including auth, but not yet production): www.photondesigner.com/articles/react-auth . Video coming soon 🙂
@zidayouzi
@zidayouzi Месяц назад
nicely done! thank you! I'm looking forward to your updated part 2 , including how to deploy both to production ,add authentication。
@tomdekan
@tomdekan Месяц назад
Coming soon!
@its-cess
@its-cess Месяц назад
​@@tomdekan I'd also love to see part 2!
@tomdekan
@tomdekan Месяц назад
​@@its-cess Thanks Cess! The written guide for part 2 is here: www.photondesigner.com/articles/react-auth I plan to release the video in the next week or so.
@MAhmad-tg
@MAhmad-tg Месяц назад
Your channel man, is a hidden gem! Keep up the great work!
@tomdekan
@tomdekan Месяц назад
Thanks 🙂 Will do!
@AlexGarcia-ir7fl
@AlexGarcia-ir7fl 2 месяца назад
So basically FASTAPI + Django dev tools
@tomdekan
@tomdekan 2 месяца назад
Yes + Django ORM integration. Here's a comparison for you Alex: django-ninja.dev/motivation/?h=fastapi
@Steven-wm9vu
@Steven-wm9vu Месяц назад
Also async just works. Also, Swagger out of the box at /docs.
@tomdekan
@tomdekan Месяц назад
Good point. Swagger out of the box is great.
@user-uj3gp2mq8m
@user-uj3gp2mq8m 2 месяца назад
Thank you! I've been looking for something like this for a very long time, only this video helped
@tomdekan
@tomdekan 2 месяца назад
Glad I could help! I'm also planning to make a React + Django video showing how to add auth. Let me know if that's interesting :)
@jayesh_15
@jayesh_15 2 месяца назад
Well the code part is similar to using the Response of DRF and thus removing the need for a serializer... Doesn't look like a stellar upgrade to get to or am I missing something here?
@tomdekan
@tomdekan 2 месяца назад
There are quite a few nice Django Ninja features v DRF: check out this Jayesh: django-ninja.dev/motivation/ I probably wouldn't switch from DRF to Ninja if I was using DRF. But I would start all new Django APIs with Django Ninja
@awan_kurniawan2962
@awan_kurniawan2962 2 месяца назад
Please make a text proximity detection program too, sir🙏
@tomdekan
@tomdekan 2 месяца назад
Interesting suggestion 🙂 Would you expand on what you mean by text proximity detection?
@awan_kurniawan2962
@awan_kurniawan2962 2 месяца назад
@@tomdekan Please help to create a tutorial on how to build a system that can detect similarities between thesis titles. The aim is to help identify thesis titles that are similar or may be duplicates at an educational institution.🙏
@tomdekan
@tomdekan 2 месяца назад
Thanks for explaining. I certainly like that idea 🙂 I'm interested in doing some NLP videos.