15 ms·
Happy 20th Birthday, Django
- rossant 1y agoHappy birthday! I've been using it for almost ten years. It was already mature at the time. Such a well-thought, perfectly documented framework.
- spapas82 1y agoI'm a really happy Django user for 15 years and hopefully I'll still use it for at least another 15! Django has a lot of beloved features but I think one of the most important is it's stability through the years: I actually have production apps that started on Django 1.4 and python 2.6 and now are updated and with with Django 5 and python 3.13. All this without too much effort on my side or paying companies to support my projects. So thank you Django people for the hard work!
- hed 1y agoI’ve used Django since 0.96 and keep coming back to it any time I need a web site that works. I’ve dabbled in other stuff but this one just clicks for me. Here’s to another 20!
- hnarayanan 1y agoThis makes me happy. I wouldn’t have a career if it weren’t for Django.
- nanna 1y agoNot even with a different stack?
- rollcat 1y agoEveryone's career started somewhere, and Django has been launching careers for 20 years now.
- hnarayanan 1y agoPerhaps. But there was a confluence of things that naturally fit with Django (and Python) that worked well for me.
- Euphorbium 1y agoFastapi has completely replaced django for me. I do not miss orm at all.
- mushufasa 1y agoDjango-ninja is a combination of Django with fastapi.
- globular-toast 1y agoIt's Django and Pydantic, not FastAPI.
- lutoma 1y agoI’ve also switched away from Django (to Litestar), but the ORM is the mean thing I keep missing from Django. SQLAlchemy feels really clunky by comparison
- rollcat 1y agoI think the ORM is fine. There's always some friction coming from mapping rows to classes and objects, but you can always drop down a layer and just pull raw tuples. What I'm not a fan of, is the query DSL. Normally, the developer works to figure out how to express their problem with SQL; then the DB engine works to figure out how to map that SQL to the data it has on disk. Now Django adds another layer, which is completely unlike SQL, has its own unique pitfalls, etc; sometimes I find myself just dumping the raw SQL, working on that to get the result I wanted, then working that back to the DSL. I think SQLAlchemy gets it right. The query language is a thin veil over SQL, and mapping to objects is an explicit and clear operation. What does feel clunky to me, is setup: SQLAlchemy expects you to bring your own glue; Django is vertically integrated.
- vFunct 1y agoThis is my pain point in Django as well, the query DSL. 10+ years with Django and I still don't know how it's supposed to work, given it's all done within the namespace of a function call. Fortunately, I now have AI to write any Django queries for me.
- mrcwinn 1y agoNot to conflate a framework and a language, but there’s something about Django that makes me feel like I’m writing PHP. What is this effect?
- n3storm 1y agoLaravel keeps copying Django (I mean it in a good way)
- mgkimsal 1y agoWhat's been copied? I see some overlap/homage to rails and some .net, but not django.
- dsego 1y agoIt should copy the query builder, in many ways Laravel is nicer, but Django's query builder is way more powerful with fewer lines of code.
- codegeek 1y agoI think Laravel copied/inspired heavily from Ruby on Rails initially.
- j4mie 1y agoLaravel’s ORM was originally inspired by my now-long-dead PHP projects Idiorm and Paris: https://laravelpodcast.com/episodes/c7807d42/transcript https://laravelpodcast.com/episodes/c7807d42/transcript (Search for “Paris” to find the relevant section) https://github.com/j4mie/idiorm https://github.com/j4mie/idiorm https://github.com/j4mie/paris https://github.com/j4mie/paris Idiorm was started in early 2010 while I was still writing PHP professionally. I’d heard about Django from a talk @simonw gave at the FlashBrighton meet-up group in 2009 and immediately fell in love. Idiorm and Paris, although not direct attempts to duplicate Django’s ORM, came from frustration that such an elegant ORM and query builder didn’t exist in the PHP world. So in a roundabout way, Laravel’s ORM was absolutely inspired by Django. As a side note, I’m still doing Django 16 years later and love it more than ever.
- hiAndrewQuinn 1y agoDjango is great! First web framework I really dove deep into, and still what I reach for first when I'm starting a new project in that space.
- zenkey 1y agoLove Django + Django-ninja but the clunky and incomplete async support is painful.
- calpaterson 1y agoWhat is missing? The ORM works with asyncio, you can have async views, you can have long running connection-oriented async stuff for websockets etc (via django channels). Maybe there is something important that I'm missing but that seems more complete than most async-only frameworks.
- sebra 1y agoThere are numerous things still missing in terms of async support. Most notably for me is DB transaction support which leads to most non-safe endpoints running on the shared sync_to_async thread and me having to separate my code into one async function calling another sync function wrapped in sync_to_async. In fact if you look at the source there is a lot of async methods in the framework itself which just straight up calls sync_to_async e.g. caching. This doesn't matter as much as hopefully it will get added proper async eventually. But I think believing your requests wont block just because you're using async is a bit naive at this point in Django and the async implementation has been going for years. Not to mention that the majority of third party libraries lack support for async so you'll probably have to write your own wrappers for e.g. middleware.
- calpaterson 1y ago> But I think believing your requests wont block just because you're using async is a bit naive at this point in Django TBH personally I have yet to work on any professional async Python project (Django based or not) which did not have event loop pauses due to accidental blocking IO or CPU exhaustion. I take your point fully though that a lot of Django's "async" methods are really using a thread pool. (True for much closed source async code as well!)
- acjohnson55 1y agoI haven't used Django in many years, but I have fond memories of learning it and building my startup as a Django app.
- rcleveng 1y agoMany fond memories of Google AppEngine using django on top of their datastore back in the day. 15 years later and DX is still quite similar.
- saikatsg 1y agoI know one of the co-creators (Simon W) is quite active on HN :)
- BeetleB 1y agoSimon wasn't a cofounder. He was an early employee/intern for LJW though. Perhaps the first person other than Jacob or Adrian to work on it.
- indigodaddy 1y agoWikipedia says Jacob was hired shortly before Simon's internship ended though. Not sure why you are trying to imply that Simon wasn't a co-creator. https://www.quora.com/What-is-the-history-of-the-Django-web-framework-Why-has-it-been-described-as-developed-in-a-newsroom/answer/Simon-Willison?ch=15&oid=88764&share=4fb920ef&srid=7UvE&target_type=answer https://www.quora.com/What-is-the-history-of-the-Django-web-...
- hungryhobbit 1y agoIn general when an intern works on something before you get there, and then you do all the real work, the intern doesn't get co-creator status.
- runjake 1y agoYou have silly rules. simonw co-created Django. It's a fact. You don't have to like it.
- peterashford 1y agoThis sounds like the Musk rule of company founding
- simonw 1y agoAdrian and I co-created Django while I was working at LJW in a "year in industry" program from my UK university - which got me a student visa, so you could call it an "internship" but it was paid and 11 months long. Jacob joined shortly before I left, then Adrian and Jacob turned Django from a closed-source newspaper CMS project into open source Django. I think they deserve way more credit for the framework than I do, they made it open source and were co-BDFLs for the next decade of development. I'll still take the co-creator credit though, because Adrian and I designed, built and sometimes even pair-programmed the core of the framework - request/response objects, view functions, template system - together during my year at the LJW. If you're interested in more details I told a bunch of the story in this talk: https://simonwillison.net/2025/Jul/13/django-birthday/ https://simonwillison.net/2025/Jul/13/django-birthday/ - and more in this Fireside Chat interview at PyCon AU: https://www.youtube.com/watch?v=1E_UqhFmJQs https://www.youtube.com/watch?v=1E_UqhFmJQs
- lenerdenator 1y agoThat project (a local one to me; was created the next county over in the KC metro) put a lot of food on my table and made a lot of value for my business partners. Happy birthday!
- frankwiles 1y agoHi neighbor! :)
- ghc 1y agoIn a very real sense, I have Django to thank for my entire career. As an undergraduate, my first academic job in a research lab had me building websites to promote the research in a lab. Django was brand new, and I was uninterested in petty concerns like stability and security, so I did everything in Django. Years later (2009), I got to do interesting work in a cutting edge machine learning lab due to the expertise I developed in Django -- I was accepted into the lab specifically to clean up the mess phd students had made trying to build a complex front end using Django's ORM with physically separate per-user MySQL database servers. All the things that came after -- being the first full time employee at a machine learning spinout from the lab, getting acquired by a big company and scaling up sensor-driven ML in the real world, quitting to co-found an ML-centered VC fund, starting a (now 10 year old) AI company -- none of it would have happened without Django.
- dcrazy 1y agoDoes/did Django have a reputation for instability or insecurity? Also, how on Earth did the ML PhDs decide physically segregated databases for each user were a requirement?
- fatbird 1y agoIt has neither reputation, and to my knowledge, has never had serious incidents of either. It powers huge websites like pokemon.com And if you spend any time working with a group of PhDs, you'll be shocked at some of the harebrained schemes they come up with. Dumb people are dumb in simple ways. Smart people are dumb in genius ways.
- ghc 1y ago> to my knowledge, has never had serious incidents of either. The magic removal branch in 2006 was one such case (of API instability). I recall another case circa 2007(?) with a "new admin". But, importantly, pre-1.0 Django made no guarantees of API stability. Post-1.0 Django has had a pretty rock-solid reputation for stability and security.
- 1y ago
- strict9 1y agoI've worked in Django across most of my career at a few places for many years. Every time I work with another framework I am reminded of how well Django has adhered to initial principles (batteries included) while adapting to changes with new technologies. It has a great community behind it and for that to exist for so long is something remarkable. Other frameworks have advantages in some places. But for overall tooling I think it still is the best choice for anything large and complex yet not a bad choice for micro projects either.
- bnchrch 1y agoAs someone today who is an unrelenting critic of python. I have to say thank you to Simon and the Django community as a whole. Its a wonderful "batteries included" framework that has launched many successful projects, companies, and careers. Mine included. And I'd be lying if I didnt say I still use pgadmin as my benchmark for evaluating admin panels in other ecosystems. What you all created with Django is amazing. We'd all be much further behind in tech without it. Thanks absolute heaps.
- chistev 1y agoHow can you be an unrelenting critic of Python but love Django?
- rollcat 1y agoI don't think you can honestly and objectively criticise something you don't truly know. There's still no framework in e.g. Go that comes anywhere close to matching Django. It's pragmatic, doesn't do too much meta-magic (I still don't "get" Rails), lets you strip away any layers you don't need, etc.
- mervz 1y agoI think Phoenix is very close to Django at fitting that bill.
- bnchrch 1y agoNow Phoenix and Elixir are two technologies I love! But theyre admin offering is lacking. (Which is ok today in modern development and things like pgadmin)
- rollcat 1y agoDjango Admin is a bit of a trap though ;) it's powerful enough that you can build an entire application with it, custom views and powerful filtering and ACLs and whatnot, it easily gets 80% of your job done with almost nothing but a declarative DSL. But the remaining 20%? Now you've dug yourself a hole with no recourse but a complete rewrite. It's time/money you would've otherwise spent anyway, but that sunken cost fallacy hits hard.
- fernandotakai 1y agodjango is the framework that made me fall in love with software development 18y ago. everything just worked out of the box (compared to using java + spring and their endless xml config files), the orm was (and still is!) lovely compared to other solutions, and there were so many things included, that i never really had to go integration hell.
- benatkin 1y agoThey didn't manage to get a blog post that doesn't scroll horizontally in Samsung Internet on my Galaxy A54. Exciting times, but there is work to be done.
- bittermandel 1y agoDjango was the whole start of my career and I still thank it for many of my opportunities. I started in 2012 to work with Django at Billogram, then founded a Django consultancy which lead me to work at King 3 years later. Who knows where I would be today if not for Django!
- hedgehog0 1y agoOut of curiosity, for people who have do projects in both Django and Ruby on Rails, which one would you prefer and why? I learned Python more than 10 years ago, but later chose Rails to be my first web framework to learn, as I also wanted to learn more about Ruby, hence the question.
- Daishiman 1y agoI've preferred Django for a few reasons: * I've always preferred Python over Ruby. Explicit imports, namespaces and the "only one way to do something" philosophy have felt more scalable. In general the language does not promote as much implicit magic * Django reflects the same philosophy: more explicit definitions, a slight bit more configuration and ceremony but easier debuggability. * The Django docs are, to me, some of the best there is in documenting the framework extensively but also teaching good practices. I've always felt the Ruby docs to be lacking in the latter department so you see more drift in Ruby projects on how to approach the same problems * Django has felt much stable over the years. Migration between major versions is a breeze. * The Python library ecosystem is much larger * The Django admin and Rest Framework are some of the biggest timesavers I've seen. Rails has similar projects but they don't quite make it Unless you're doing a GIS or project with scientific computing I would not let these factors go above personal preference, as Rails is still an excellent framework.
- abhiyerra 1y agoHaving done Rails and Django professionally for some time now I’d honestly recommend Django. While I love the meta aspects of Rails unlike other people I just think the Python library ecosystem is just so massive that you can quite literally do anything with Django without having to resort to multiple programming languages, etc. Lot of the places I see that use Rails now has a separate codebase for their Python work that has to be accessed via separate querying versus just using the Django ORM. For most cases I would recommend Django to be the main framework for startups. But if you don’t intend to do any ML/AI and only need a defined set of libraries and you are a one man shop then Rails dev speed is so fast.
- neko_ranger 1y agoDepends on the project. I feel like Rails has better JS integration if your project really needs it. The out of the box JS experience with rails (import maps) is similar to django (static link from cdns), but the ability to set up esbuild from project generation makes it really easy Literally just my opinion though, but I haven't been pleased with an extremely nice method to set up django with javascript that doesn't feel hacky for local dev and deployment
- Takennickname 1y agoUnquestionably the best framework I've ever used. I could never learn backend javascript because why would I put in the effort when this exists.
- chistev 1y agoExactly me! But I still learn Javascript lol
- simonw 1y agoWe had an in-person event in Lawrence, Kansas ten years ago for Django's 10th birthday. The videos of the talks from that event are here: https://pyvideo.org/events/django-birthday.html https://pyvideo.org/events/django-birthday.html I celebrated the 20th birthday yesterday by writing up an annotated transcript of my talk from the 10th - it tells Django's origin story: https://simonwillison.net/2025/Jul/13/django-birthday/ https://simonwillison.net/2025/Jul/13/django-birthday/
- misthop 1y agoWorking with Django for the past 15 years has been a pleasure. Joining the community was a revelation. Serving on the board and as president of the DSF was a privilege. I look forward to 20 more years of code and community.
- chistev 1y agoA really wonderful framework. I've only worked with Express js as an alternative and I just love how Django handles lots of things for you and let's you focus on the core logic.
- rollcat 1y agoI've shed a tear. I was still at uni (2008) when I got my first PHP job. I've shown Django to my boss. He's never started another PHP project since. Django is now older than I was when I first used it. To another 20 years.
- gbcbooks 1y ago[dead]
- rick1290 1y agoLove django. Whats the consensus on best way to use django in 2025? I've been going the headless route. Django for the backend and using vite or nextjs on the frontend with openapi specs auto-generated.
- misthop 1y agoLots of growing love for returning to the template system and using HTMX with a bit of alpine sprinkled in as needed for interactivity.
- buffalobuffalo 1y agoIt's still the best RDB schema creation/migration tool I know of. It has a crazy number of plugins to handle all sorts of unusual field types and indexing. I usually add django to any project I'm doing that involves an RDB just to handle migrations. As long as you avoid any runtime use of the ORM it's golden.
- heckintime 1y agoI've been a fan of Django templates and HTMX. I like how I can get interactivity without too much complexity. I do have specific parts of my website that rely on more complex tools, such as Codemirror. Even then, templates work well enough for me, so I haven't found a compelling enough reason to adopt more JS for my website.
- delbronski 1y agoI wanted to like HTMX and Alpine. But after a few medium sized projects with it I went back to vite/react for larger frontend. I found it so difficult to come back to old htmx/alpine code. If you got a complex UI to maintain I would personally recommend the React route. It is very easy to setup with Django.
- stonecharioteer 1y agoDjango is somehow the one thing in Python I never enjoyed working on. I recommend it thoroughly to people running teams since it keeps devs disciplined, but I've always been a Flask programmer at heart. To each their own. I'm glad Django exists, it's eaten plenty a share of the pie that would have otherwise gone to Rails maybe.
- otherme123 1y agoThe couple of projects I was forced to use Flask, they both ended as a bunch of poorly assembled libraries to work like Django (admin + orm + migrations + cache) but worse. The drift from a simple Flask to monstrosity Flasknjo was so natural that I suspect it happens to a lot of people.
- globular-toast 1y agoActive Record pattern forces the architecture into a big ball of mud. But hey at least you get "views.py" etc...
- robertlagrant 1y agoThe ORM+migrations bit at least is pretty solid with Flask. I quite like bolting little bits on that I might need or not need. It's like saying Django+DRF is a monstrosity compared to FastAPI/Litestar.
- dmpayton 1y agoI first started using Django in 2006, v0.95, the "magic removal" release. I was 19 and doing PHP at a small startup. I'd heard the hype around Rails, and wanted to check it out. Several hours and many head-desk moments later, I still couldn't get everything set up properly on my laptop (running Ubuntu). In my research, I discovered Python and Django and decided to give it a whirl. Twenty minutes later, I had the Django Hello Word page on my screen, and I haven't looked back since. It wasn't long before newforms became a thing, and the 1.0 release, lots of cool database features, migrations (I remember debating South vs. Nashvegas at work), class-based views (amazing!), Postgres-specific features (built-in JSONField, finally!), Py3k support, ASGI... It's been a long, cool, productive road. I was at the first DjangoCon in 2008 (leaving my wife at home with our two month old!), and giving a conference talk for the first time a decade later at DjangoCon 2018. I owe my career to Django. It has been my framework of choice for projects large and small, and I've always felt solid in that decision -- thanks in no small part to the community. HBD Django! <3
- lvl155 1y agoDjango just works out of the box. And if you hate JS, well… I am glad Django kept at it all these years despite all the JS frameworks gaining (and falling out of) popularity. So thank you to all those who contributed even when it wasn’t so sexy.
- enether 1y ago+1! It may not be sexy, but its lindy and worthwhile the time investment. Likely to last 10-20 more years
- sharpshadow 1y agoHappy to see Django still thriving, after flask it became my favorite web framework. Congrats to Django and he community!
- Klonoar 1y agoThis damn framework has provided me more value than almost anything else I've ever used in my 20+ career. It's also somehow wound up being a north star of sorts when I find myself needing to reimplement behavior in other web stacks; I usually just go read how Django has done it, then adjust as necessary. Hell of a run, here's to the next 20.
- sakesun 1y agoThe web framework for perfectionists with deadlines. The coolest tagline ever.
- ropable 1y agoI owe the current (probably final) phase of my professional IT career to Django, now having used it in production of ~15 years. I got in around the 1.0.* release mark so I missed any possible early instability, and have found it an absolute pleasure to build with since. It's been stable, reliable, regularly updated and (importantly) easy to teach to new devs. The documentation and API have only gotten better in the intervening years. It remains (along with PostgreSQL) one of the few technology choices that have we have never regretted or second-guessed in my organisation.
- vismit2000 1y agoCorey Schafer also has a beautiful playlist on Django making learning how to use this framework a cakewalk: https://www.youtube.com/playlist?list=PL-osiE80TeTtoQCKZ03TU5fNfx2UY6U4p https://www.youtube.com/playlist?list=PL-osiE80TeTtoQCKZ03TU...
- tock 1y agoOf our US $300,000.00 goal for 2025, as of July 13th, 2025, we are at: - 25.6% funded - $76,707 donated :(
- ethan_smith 1y agoThis funding gap highlights the persistent challenge of sustainability in open source - Django powers billions in business value but struggles to secure a fraction of that for its own development.
- deleted 1y ago[deleted]
- rick1290 1y agoYeah, that is a bit disheartening. It’s a reminder of how vital it is to support open source tools, especially when they’re going up against massive, well-funded competitors. These projects often power the backbone of the internet and tech ecosystems, but they can’t survive on goodwill alone. If we want innovation, transparency, and community-driven development to thrive, we have to step up — whether it’s donating, spreading the word, or helping out however we can.
- maz1b 1y agoHappy 20th birthday, Django! You've certainly unchained a lot of startups, businesses and enterprises to build out a ton of cool things. Thanks to the creators, contributors, community, and maintainers. I'm more of a Rails and Phoenix guy myself, but I have a lot of respect for this project. Never worked super deep with Django, but have worked with Flask and Tornado in the past.
- ekinertac 1y ago20 years is an eternity in web development, and Django's longevity is a testament to its brilliant design philosophy. Happy birthday to the framework that gets things done. Django is pragmatic, secure, and unbelievably stable. It's the framework you choose when you want to build a real business, not just chase the latest trend. It has powered some of the biggest sites on the web, and it's still the best choice for a huge number of projects. Here's to 20 more years.
- manojlds 1y agoWasn't Django inspired from Rails
- paganel 1y agoNot really, it was a strong inter-connection between the two at the beginning, going both ways, but I'd say that Django's design philosophy was its own thing. Granted, as time goes on things have started to become fuzzier and fuzzier in my head, and not only when it comes to programming languages/web frameworks and the like. Source: me, I was programming in Zope 20 years ago (mostly hated it, although there were lots of interesting things in at a conceptual level), switched jobs at the beginning of 2006 and thanks to the new boss I got to use Django since February of 2006 (I think I still have a 0.96 version installed somewhere on an old instance, still does its thing).
- kstrauser 1y agoZope, shudder. It had some amazing ideas and I built a reasonably large app on it, but I’d rather swallow my own tongue than work inside an application server again. Django and its contemporaries, like TurboGears and Pylons, were a breath of fresh air.
- antod 1y agoI liked Turbogears, but their approach of using "best in breed" libraries kinda burnt them as what that meant kept changing and leaving them behind.
- dxroshan 1y agoI have made some money by building Django apps in the past.
- physicsguy 1y agoThis is timely given the discussion under this yesterday: https://news.ycombinator.com/item?id=44557115 https://news.ycombinator.com/item?id=44557115
- parham 1y agoThe most amazing and well thought out web framework I’ve ever used. Cannot wait for the async and bg work interface! Happy birthday Django you cutie
- billvsme 1y agoI started with Django 1.6 and it got me my first job. Although I generally use flask now. Thank you Django.
- est 1y agoI started with 0.96 and it got me my first job. The admin was a blast. Thank you django.
- noufalibrahim 1y agoIt's nice to see software last like this. Some personal anecdotes Back in the day, when I was first picking up on frameworks, I saw Django and TurboGears. A friend of mine went with Django while I went with TG. I don't really know what the status of TG is anymore but back then, I thought SQLObject, Mochikit etc. were awesome. I think I took the wrong fork in the road then. I once attended a "web" panel at PyCon India where there was a discussion between proponents of various frameworks. The Django guy had a nice quote - "I don't know what the standard Python web framework of Python will look like in another 20 years but I'm quite sure that it will be called Django". His point was about the longevity of the project and it's ability to adapt.
- aniforprez 1y agoThe only issues I see with Django these days are a lack of native python types and especially these days with type hints included in the language I think there should be efforts taken to have this present within the framework itself. I know there's packages that provide it but I'd prefer if it was coming from Django itself. Otherwise it's a fantastic framework that's extremely flexible and a joy to work with most of the time. Due to its longevity, it has such a rich ecosystem that's enviable and only mirrored by the likes of rails.
- matsemann 1y agoYeah, to have a properly typed codebase I'm basically isolating the ORM and models from the rest of our app. So there is a selector layer that fetches data, and then maps that do dataclasses/pydantic, instead of passing the django model objects around. It's a good practice anyways I feel, as the application grows you don't want different "apps" to know too much about models in other apps. But even with this flow, in my selector layer I still have to do "# type: ignore" any time I've used an annotation. Especially due to python's lacking lambdas, when I map data from a queryset it often has to be a properly defined function, but then whatever annotation django-stubs managed to apply is lost anyways.
- caust1c 1y agoDjango + REST framework is what I cut my teeth on doing web programming in my first job. It's a wonderfully written codebase, I'm very thankful I had some great code to learn from, and it wasn't even 10 years old then, I didn't even realize. Congrats team! Glad to see it's still thriving and a great option to pick up for beginners.
- kibibu 1y agoDjango I love; last time I tried REST framework it felt like the polar opposite of DRY. Not sure if this was intentional or not.
- Surac 1y agoI remember the Django movies.
- lastdong 1y agoHappy Birthday, Django! If you were a music genre, you’d be heavy metal — loud, structured, and built to last. 5.2 release was recently discussed here on HN: https://news.ycombinator.com/item?id=43556656 https://news.ycombinator.com/item?id=43556656
- eCa 1y agoI would’ve thought jazz…
- atoav 1y agoAs a Flask/Fastapi guy I lately made a project with Django and I have to say I am very impressed with how much the defaults worked for my project and how much of the complicated issues were taken care of (e.g. database migrations, prrmission structures).
- sgt 1y agoI'm a Django guy and I recently wrote a FastAPI because it needed some async stuff. But that's a rare exception. Most times I will still choose Django and just go sync, which will still scale quite a bit. I might rewrite the FastAPI app in Zig, come to think of it.
- deleted 1y ago[deleted]
- floydian10 1y agoDjango was the first Python framework that made sense to me and that I enjoyed working with. Also got me my first Python job after years of Java development. I have moved on to other things since, but I miss it's simplicity and the general "it just works" aspect of the framework.
- anuvratparashar 1y agoA lot of engineers owe their careers to the framework, including me. Thank you Django. Happy Birthday.
- bodge5000 1y agoI started with Django as my first "proper" web framework, have explored quite a few others since but always come back to Django eventually. It's just such a good baseline for a framework, not just in its features, but also in it's strong philosophy (many frameworks I've found lack this, a lot of good ideas but no cohesion between them), stability and perhaps most importantly, it's incredible work on documentation. Thank you to all the contributors!
- insin 1y agoHappy birthday, Django. I've used, read and loved just about every part of you from the magic-removal days onwards when I had the Rails book on my desk and your docs in my browser, and you (and Python) won. I loved spending thousands of lines in a models.py modelling all sorts of problems before I touched a single line of other code. You got me into open source and then you got me into writing JavaScript seriously via the first large library I ever wrote in it (a port of what was then django.newforms - thanks and vale, Malcolm - for Node.js and the browser). You're my favourite framework I haven't actually used for a decade. Django's docs can't be praised enough, they've always been the gold standard that I aspire to, taking a similar approach to documenting my own stuff seriously leveled me up, and great docs written for humans by humans stand out even more amongst the painlessly effortlessly generated slop of the day that's painful and effortful to read. Template inheritance was so elegant and simple compared to the Java and PHP I was professionally and personally using at the time, but 20 years later and after having used Hono, one thing I'd love to see in Django is... JSX in Python! Imagine: def Layout(title: str, children): return ( <html> <head> <title>{title}</title> </head> <body> <h1>{title}</h1> {children} </body> </html> ) def message_list_view(request): messages = ['Good Morning', 'Good Evening', 'Good Night'] return render(request, <Layout title="Messages"> <ul> {[<li>{message}</li> for message in messages]} </ul> </Layout> )
- dotandgtfo 1y agoI'm newish to Django. Been using it for about a year. I had some experience with React earlier. But I'm more of a data engineer. Django Cotton [1] scratched my itch fully. Very composable. Being able to pass HTML to components (E.g. you create a modal which takes a content slot) removed so many of the warts I felt using the standard Django templating. It's not JSX, but it plays well with Django and makes it feel like I can create a real design system of components without a ton of JINJA. https://django-cotton.com/ https://django-cotton.com/
- alberth 1y agoLawrence Journal World birthed Django, and now runs on Wordpress. https://www2.ljworld.com/news/2018/jun/26/redesign-ljworld/ https://www2.ljworld.com/news/2018/jun/26/redesign-ljworld/ https://en.wikipedia.org/wiki/Lawrence_Journal-World https://en.wikipedia.org/wiki/Lawrence_Journal-World
- frankwiles 1y agoYeah after the acquisition I’m sure they moved everything to whatever the parent company was using which totally makes sense.
- thunder-blue-3 1y agoI remember when Django first came out, and I loved using it. For old time sakes, I went back to their website and they still have the tool bar on the right side, which I use to love. Happy birthday Django!
- crowcroft 1y agoFor something to endure so long in the web dev world is a real testament to all the people in the community that do the mundane 'gardening' work each day. Pruning back 'dead' parts of the framework and smoothing out rough edges as the world evolves.
- sc68cal 1y agoI owe my career to Django, I used it to build some projects when I first started my career, and recently reached for it when I was asked to build another huge project. The built in admin panel is the killer feature.
- pradn 1y agoI hear about the "Django philosophy" in this thread. What exactly is it?
- akoumjian 1y agoI also started my career with Django using 0.96 in college and 1.1/1.2 with my first industry jobs. It was a really empowering framework and it is surprising to me that I still pick it up today for new projects when appropriate. I started attending the Seattle Django Users Group and discovered there were a decent number of "ex-pats" from the Lawrence Journal-World who were there as it was being developed. Before I knew it I was helping organize the user group including our weekly coffee shop meetups in addition to the monthly lecture gatherings. There were a lot of local startups (including some very well known businesses and non-profits today) very actively collaborating on these tools. Django was really evolving the way a lot of companies used software and automation. It wasn't only the engineering, the community ethos of Django both at the local and international scale (and the Python community as a whole) really made it possible to branch out and accelerate my personal software engineering journey.
- i_am_programmer 1y agoIt feels surreal that every time a Django topic comes up on this site it's flooded with people praising it and proclaiming how much they love it. I honestly found it to be the absolute worst Python framework I've ever worked with. I found it so hard to intuitively write code for it because it just does stuff for you in the background and you can't always see the execution order of code, especially when leveraging that default dashboard feature. I lasted 11 months in a role that used Django exclusively. I'm happy for people that built a career with it, but it just blows my mind people aren't more critical of it. Not that they necessarily need to be though.
- gitaarik 1y agoIt's probably because you never did the Django tutorial. Once you understand what what does, it's actually very nice, because you don't have any boilerplate. Django takes care of the boring parts, and you can focus on making the app. But at the same time you still have control to customize everything to your liking. And the docs are very good and complete, so you can always look up stuff if you don't understand it.
- kstrauser 1y agoTwo things are true for me: * I think Django is an amazing piece of software, developed by a lot of clever, brilliant people. * I don’t want to use Django. I think Django is unmatched for building a Django app. That is, if you want to connect to a relational DB, make CRUD queries with its OR , and spit out the results in the exact HTML or JSON it supports, you’re going to have a great time. If you want to hit non-relational backends (including APIs), form your own outputs, or reuse the SQLAlchemy models you built for another part of the project, you’re entering a world of pain. Mark it zero and move on. Turns out most of my stuff is doing non-Django patterns. But if that were different, if I were building a traditional website on top of PostgreSQL and starting with a blank slate, sure, it’d be high on my list of options.
- mixmastamyk 1y agoIt’s a little clunky in places, but it’s fantastic at having a solution ready for almost any problem. The one thing that still bugs me is that you have to wire everything together manually. But other than that, much better than most.
- eddlgtm 1y agoIf you had to learn Django today in 2025, what resources would you recommend?
- delbronski 1y agoDjango docs are still the best way to learn it.
- delbronski 1y agoI love Django. I still reach for it for most projects. I really wish they would introduce a more modern frontend system though. I find it hard to go back to templates after using react. It’s easy enough to use Django and react, but it would be amazing if there was a more modern solution within Django for frontend.
- rick1290 1y agoAgreed
- dylan-m 1y agoMy favourite thing about Django is the versioned documentation. Land on a page - any page - and you can trivially read the docs on that subject all the way back to 1.8. That's ten years old. And it works, because Django knows how to patiently deprecate APIs and migrate things. They built one docs site, and it still works. It didn't bitrot. The URLs haven't changed. They didn't restructure everything and force people to rewrite their entire projects or be judged quietly. Every single time I end up working with a framework where docs are littered across a handful of different websites for different versions and types of docs or whatever, I think of Django and I wonder why people have such terrible taste. Alas, that tends to be the majority of my experience with Django. Using it for one-off personal projects and quietly wishing for the current new shiny JavaScript thing to go away. It still feels like home, but most of my time is somewhere else.
- novoreorx 1y agoHaving been using Django for more that a decade, I will continue to bet on Django for the next 10 years