All the third party apps are open source. Codes are available on github. You can create your own. Just like you, they've also created, and kept public.
On Thu, Feb 20, 2020, 6:57 PM 'Artem Vasin' via Django users < django-users@googlegroups.com> wrote: > Hi! > > *Tl;dr no I don’t think so, actually it’s very useful.* > > IMHO, you are barking at the wrong tree. As I see it, and I think many > would agree with me, using third-party libraries instead of implementing > your own, are the way to go in Django and Python and open-source community > in general. It gives you advantages of not wasting your time writing > something that already exists from scratch and focus more of business-logic > of your project instead of technical things like organising auth or > request-response handling (something for which we using Django in first > place). > > Why it may be fun and educational to write something like your own auth > system or rest-api from scratch and probably you should really at least try > something like that when you learning Django or any other framework, you > probably should not do so, when developing application which is more then > study project. Using third-party apps not only saves your time, but > provides you with some advantages over something written from scratch. For > example you talking about authentication. Are you sure that your > self-written library is really secure? Is it tested better than result of > work and debugging of several people (or in case of DRF baby people) over > the course of multiple years? Will it work with different versions of > python or Django, which you can be forced to use in other projects or you > should write another version if you will need to use older python or > Django? Will someone help you with problem in your library or they simple > say 'You should have used <already_existed_library_name'? How easy will it > be to take what you write in one project and use in another? Etc. > > As I see it, modern day programming is not about writing from scratch and > more about knowing which libraries you can use and when and how use them. I > think that most of programmers, using Django for serious projects actually > very happy every time when they can use third-party library to add some > functionality in project. > > Now about third-party-app naming. Actually I think that in contrary to > your position all third-party Django apps’ names *should* start with > *django-. * > *Firstly*, it really helps in finding third-party apps in google, and as > I say earlier using third-party libraries instead of writing everything > from scratch is python way as I see it. > *Secondly* it helps differentiating Django apps from other libraries in > PyPI, GitHub or others list of libraries. For example we have app^ which > allows authorise Django user through ldap. If we call it simply auth-ldap > it may be named the same is some more general ldap auth library in PyPI and > we could not publish it here. Naming it Django-auth-ldap decreases chance > of this collision. > *Thirdly*, this naming implies that this library designed to work only in > concert with django. Many of Django third-party app would not work without > Django core packages, or such a small part of them will be useful, so > including this app in your project will bring a lot of overhead. > *And lastly*, this naming helps you understand what this package is when > you see it somewhere in *requirements.txt *or in *pip freeze* output. > > Now to address your problem about trying to write something from scratch > and finding only third-party libraries. If you writing something like auth > system in production system may be it’s real better to use already existing > and tested third-party library. But if you want to write something from > scratch to deeper your understanding of Django or programming in general, > that’s actually a wonderful idea, wish more of my colleagues do something > like that in their free time. So how to do it, when google only wants to > show you third-party libraries? > > Try to add words like *«from scratch» *or* «without third-party apps» *in > your search query. There is plenty of posts in internet where someone > writes about how to implement something without adding new dependencies. > > And why do you think, that third-party apps is useless when writing > something from scratch? Actually no one forbids you to open GitHub of > third-party app doing something that you trying to write and read it’s > code. Most of big de-facto-standart libraries, like DRF is actually well > written and you even can get something from their sources, of which you > didn’t even think. You can even try to contact authors and ask them, why > they did something the way it is. I think that you can learn something new > that way. > > So no, I don’t think that *django- *prefix is as big problem as you > trying to make it. Actually, I think that when you start write something > meant to work in production and solve someone problems you will be very > glad for that prefix. > > Good luck in learning Django. Have fun > > 20 февр. 2020 г., в 09:35, Abhilash Nair <abnai...@gmail.com> написал(а): > > Hi everyone, > > I am new to Django. Whenever I try to search for way to implement certain > ideas using django, most of the results are of using the third party django > apps. As of now I am not interested in using the third party django apps. > For example I was try implement rest api using django alone. Most of the > google search results where of using DRF(django rest framework). I tried to > implement otp based authentication. Again most of the google search results > are django-otp-official package. Similarly I was looking to implement token > based authentication. Again most of the results are using DRF. I understand > these third party apps are providing many of the thing I want. But problem > is I don't want to use them and want to implement using just Django. And > resources for that are available but they get hidden in the avalanche of > these third party django packages dominating all the search results. My > request is to disallow third party packages to contain django in their > package name. Guys let me know your thoughts. > > Thanks and Regards > AB Nair > > > -- > You received this message because you are subscribed to the Google Groups > "Django users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to django-users+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/django-users/b31e5d32-1a7d-4000-9bff-36b97410cabf%40googlegroups.com > <https://groups.google.com/d/msgid/django-users/b31e5d32-1a7d-4000-9bff-36b97410cabf%40googlegroups.com?utm_medium=email&utm_source=footer> > . > > > -- > You received this message because you are subscribed to the Google Groups > "Django users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to django-users+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/django-users/5DA146E1-AABC-42E7-8341-9D03867BD7E3%40me.com > <https://groups.google.com/d/msgid/django-users/5DA146E1-AABC-42E7-8341-9D03867BD7E3%40me.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CAJY8mfzzSXJzNUuNNri9GtMXKYGm6hT9qUQbjC-3PCyyAzHDGA%40mail.gmail.com.