TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Plain – a web framework for building products with Python

310 点作者 brylie大约 2 个月前

45 条评论

miiiiiike大约 1 个月前
Related, &quot;Django&#x27;s REST (Framework) Problem&quot; — <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=43510495">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=43510495</a><p>I&#x27;m not sure that many people who rely on Django Rest Framework are aware that last month the bug tracker was made private and the project is looking for new maintainers.<p>I love Django but the project needs to go through something similar to Angular&#x27;s renaissance (and Angular needs to learn from Django docs.) I&#x27;d love to help but it seems that most of the efforts to address the issue have been stalled in committee.<p>A fork probably isn&#x27;t the answer but something needs to be done. If it&#x27;s a money issue, pass the plate! Whenever I talk to Django devs about contributing the feeling that I&#x27;m left with is that I could put in years of work, jump through every hoop, and at the end of it they may still say &quot;We&#x27;re not sure.&quot;<p>The feeling that I&#x27;ve gotten is that the Django dev community is very small and tight-knit. Whenever I&#x27;ve talked about helping out on various projects I&#x27;ve walked away with the feeling that their friend is handling it and they&#x27;d rather leave them to it. The community has been trained, through years of reinforcement, to wait instead of getting involved.
评论 #43517059 未加载
评论 #43514543 未加载
mariocesar大约 1 个月前
I&#x27;ve some mixed feelings about this fork. On the one hand, I get the motivations, there is alway a lot of value in experimenting outside of a legacy project. But at the same time, I cant help but feel uneasy seeing something I&#x27;ve deeply respected and used on for years being split off in this way, &quot;fork of Django&quot; is a big statement.<p>Part of that discomfort comes from a sense that the collective effort into Django is being sidestepped rather than built upon. It feels like a &quot;saas-fication&quot; effort, like Ruff, Docker, Terraform, etc but instead of going from creating something new it replaces something that already works. I worry about the potential for a more commercial or narrow direction that doesn&#x27;t embody honestly the open, thoughtful mission thats made Django so special.<p>I&#x27;m in love of boring software.<p>I care about Django more than I realized. Seeing this has actually pushed me with a gut emotion to want to get more involved contributing code, writing, or just participating more with Django<p>It&#x27;s not about the tool or the language, I want to feel different about the community that is open and respectful of contribution and values long term relations.<p>It&#x27;s not fun to be boring, but boring is good
评论 #43517492 未加载
sroerick大约 2 个月前
As a guy with a lot of hours into Django, I will echo that I don’t quite understand the “why” here.<p>I think there’s a number of areas where Django falls a bit short and other web frameworks excel. For example, task workers are not first class citizens and require Celery or another task manager. REST APIs are a similar situation. Celery and Django REST are great, but they do feel a little ham handed. I’ve seen other frameworks handle this in ways that really seem to work great.<p>I guess auth is prioritized here? But I actually like the barebones Django auth and find it useful in many situations where I don’t need full OAuth.<p>I’m not saying this isn’t needed and it looks cool and nice - but for the use cases where I’ve struggled with Django, it seems like this would actually increase complexity, as the 3rd party ecosystem would obviously not be robust.<p>It looks like the author has a perfectly good workflow and use case for this, but it’s not clear from the homepage or the “about” page linked elsewhere in the comments exactly what this is for
评论 #43513126 未加载
评论 #43514056 未加载
theptip大约 1 个月前
Seems weird to me. The strength of Django is the ORM and the ecosystem&#x2F;idioms.<p>Why would I break compatibility with the latter by taking a fork?<p>I would love to see better admin (so many have tried to do this) but it’s unclear to me why the goodstuff here can’t be a Django project template. (<a href="https:&#x2F;&#x2F;docs.djangoproject.com&#x2F;en&#x2F;5.1&#x2F;releases&#x2F;1.4&#x2F;#custom-project-and-app-templates" rel="nofollow">https:&#x2F;&#x2F;docs.djangoproject.com&#x2F;en&#x2F;5.1&#x2F;releases&#x2F;1.4&#x2F;#custom-p...</a>)<p>As a longtime user if I want anything different these days it’s a lighter-weight experience like Django Ninja or FastAPI.
999900000999大约 1 个月前
I have mixed feelings.<p>I just switched to Django from Supabase&#x2F;Firebase. The main thing I like is theirs a plugin for everything you’d want.<p>It’s also much easier to actually self host, Supabase is open source, but actually doesn’t self host all that well. You have a bizarre gap between ’free’ with constant nag emails warning you there about to turn off your project, a 25$ paid tier and a black box enterprise level. Call us isn’t very transparent.<p>For Plain, I’d much rather this be a Django plugin, I don’t want to replace a well supported and documented framework with a 1 person fork. Definitely looks cool, but you’ll never be able to provide the same ecosystem and support as the main Django project.
nop_slide大约 1 个月前
I appreciate this effort and am surprised by the negative sentiment. I evaluated the big 3 frameworks (Laravel, Django, and Rails) last year and Django felt like the worst of the lot.<p>I <i>really</i> wanted to like Django more since I use python at $dayjob, but it seemed so far behind Laravel and Rails terms of DX and features. Also the ecosystem seemed fragmented and a lot of packages looked stale.<p>For example, I remember having to piece together a static files pipeline for Django with whitenoise, how is that not included by default?<p>Additionally the issues around the user model are bizarre, near the very end of the docs they tell you to override the user model to fix it. Wat.<p>Lastly Django templates felt super limiting, Livewire&#x2F;Laravel and Hotwire&#x2F;Rails gives you so much out of the box.<p>I ended up choosing Rails to start building side web apps, their move to SQLite-first and the whole “Solid” suite of tools is rad. Specifically Solid Queue is awesome! I noped out of Django when I saw how intense the docs for setting up celery were.<p>Hoping this spurs some activity in the Django-sphere, I would love if Django felt more complete like Rails!
评论 #43518325 未加载
评论 #43518259 未加载
评论 #43518246 未加载
philips大约 2 个月前
I feel the About page would be better for the audience who clearly already knows Django: <a href="https:&#x2F;&#x2F;plainframework.com&#x2F;about&#x2F;" rel="nofollow">https:&#x2F;&#x2F;plainframework.com&#x2F;about&#x2F;</a>
评论 #43512838 未加载
spapas82大约 1 个月前
I took a peek at the docs <a href="https:&#x2F;&#x2F;plainframework.com&#x2F;docs&#x2F;" rel="nofollow">https:&#x2F;&#x2F;plainframework.com&#x2F;docs&#x2F;</a> and the packages&#x2F;functionality mentioned there.<p>Everything, and I mean <i>everything</i> is already either in core Django or in a great and properly supported django package that&#x27;s been used in years and has been proven to be reliable.<p>I really can&#x27;t understand the purpose of this package. Taking a peek at the about as mentioned by some others:<p>&gt; You can think of Plain as a &quot;what if?&quot; &gt; What if you didn&#x27;t have to worry about deprecation policies?<p>The fact that Django <i>has</i> deprecation policies and they are so religiously followed allows me (and others) to have 10+ years old projects running in Django 5.1 and being ready for 5.2 without any problems or baggage!<p>&gt; What if there were no committees?<p>A committee is a good thing. It ensures two things: a. It&#x27;s not possible to commercialize the project. b. It makes sure that it will do what&#x27;s best for most users. Some decisions may no be good for a particular user but it would be best for most users (considering my previous comment; I want to keep my 10+ years old project properly supported).<p>&gt; What if you could change anything without consequence?<p>See previous comments. You can change anything without consequence when you have a clean slate, not when you need to support current stuff.<p>&gt; What if Django wasn&#x27;t originally built for a newspaper circa 2003?<p>This really doesn&#x27;t relevant. Django is a general purpose framework.<p>&gt; What if you had a clean slate, but a proven head start?<p>See the previous comments.<p>&gt; working through years of incremental progress and committees, with a very real possibility of some things never happening, is just not for me.<p>Please see my previous answers. Also, about changing stuff, that&#x27;s the purpose of packages, ain&#x27;t it? Django has a <i>lot</i> of escape hatches to change its behavior from the defaults. And of course if you wanted to do something not supported you could try to do a PR so as to open another escape hatch so Django will keep the default behavior but you&#x27;ll be able to implement your thingie.<p>Concluding, I really don&#x27;t like this project forking Django because all this effort could be put to better use and definitely not try to split the community. Especially the community of a real Open Source project like Django.
JodieBenitez大约 2 个月前
Trying to run the starter kit, it tries to download mkcert, but that download fails with a ssl.SSLCertVerificationError... how ironic :)<p>brew install mkcert fixes this.<p>Also, a starter kit that asks for my password right away is a bit too intrusive for me:<p><pre><code> Downloads&#x2F;new-project [master {origin&#x2F;master}|]: uv run plain dev Generating SSL certificates for app.localhost... Created a new local CA Note: the local CA is not installed in the system trust store. Note: the local CA is not installed in the Firefox trust store. Run &quot;mkcert -install&quot; for certificates to be trusted automatically Created a new certificate valid for the following names - &quot;app.localhost&quot; The certificate is at &quot;&#x2F;Users&#x2F;me&#x2F;Downloads&#x2F;new-project&#x2F;.plain&#x2F;dev&#x2F;certs&#x2F;app.localhost-cert.pem&quot; and the key at &quot;&#x2F;Users&#x2F;me&#x2F;Downloads&#x2F;new-project&#x2F;.plain&#x2F;dev&#x2F;certs&#x2F;app.localhost-key.pem&quot; It will expire on 29 June 2027 Adding app.localhost to &#x2F;etc&#x2F;hosts file. You may be prompted for your password. Password: </code></pre> I generally don&#x27;t like to rely on ssl for development anyway. Make it optional maybe ?
petr25102018大约 2 个月前
I don&#x27;t know if Plain has a chance to succeed but I understand why it is a fork. Django leadership haven&#x27;t been able to move Django forward outside of its old paradigms and every attempt, be it a fork or third-party app, counts.
评论 #43513080 未加载
askonomm大约 1 个月前
First thing that I don&#x27;t like is the settings being strings that reference classes. Usually that means that go-to definition does not work (I&#x27;ve seen similar things in Symfony with YAML use). If the config needs to reference a class, or some object, I would like to be able to easily navigate to it as opposed to having to manually search the project for it. If this was an actual object reference as opposed to a string, I could, and I&#x27;d also get intellisense for if I typed it right or not, and autocomplete.<p>Then of course they &quot;solve&quot; it later with a (probably paid) plugin. But why? LSP&#x27;s support this natively, and for free, just don&#x27;t use strings.
评论 #43517164 未加载
评论 #43516947 未加载
mcdirty大约 2 个月前
Tbh why should I use this over Django? Less docs and knowledge around it. Less maintainers. Idk seems like a business risk to invest real time in it for me
daft_pink大约 1 个月前
I think to really learn Python for web as a developer you really have to learn WSGI&#x2F;Gunicorn&#x2F;etc and handling sessions within this.<p>I’ve found the challenge with Python for web is deployment as most website deployments are geared towards serverless workers or cdn’d javascript bundles and most python systems use WSGI and sessions, which is fundamentally different and the biggest challenge in newbie’s using python for websites.
评论 #43596503 未加载
mychael大约 2 个月前
Where is the unique value add? It&#x27;s like the only differentiation is that they ran sed &#x27;s&#x2F;django&#x2F;plain&#x2F;g&#x27; across the repo.
评论 #43513267 未加载
jgb1984大约 1 个月前
Yeah, no thanks, I&#x27;ll stick with Django (my bread and butter for over 15 years now!).
scottpersinger大约 1 个月前
you lost me at &quot;fork of django&quot;. Start with FastAPI and work up from there, and borrow good ideas from more modern frameworks.
librasteve大约 2 个月前
This feels right and wrong at the same time.<p>It’s right (as explained in the about):<p>- to like Django and all the 1000s of contributions<p>- to be frustrated by its limits &amp; to want to do more<p>- to fork and rearchitect if you can’t get there by debate<p>- that people may like it and come along or the ride<p>- in many of the features and design points<p>- to embrace HTMX<p>It’s wrong:<p>- to try to innovate on the Python&#x2F;Django ecosystem<p>- to miss out on functional code for HTML composition<p>- to continue the framework paradigm - HTMX leads to server side which leads to devs reclaiming the application loop<p>If, like me, you feel that plain is on the right track, but want to go faster &#x2F; further, then I encourage you to take a look at <a href="https:&#x2F;&#x2F;harcstack.org" rel="nofollow">https:&#x2F;&#x2F;harcstack.org</a>. [disclaimer, I am the author]
评论 #43513663 未加载
评论 #43528069 未加载
scop大约 1 个月前
This looks cool. FWIW I’m not a Django guy, but pulled up the site (djangoproject.com) out of curiosity to compare it to Plain. One thing that stood out to me was this:<p>&gt; Ridiculously fast.<p>&gt; Django was designed to help developers take applications from concept to completion as quickly as possible.<p>This rubs me as a little deceptive&#x2F;insincere. When I read “ridiculously fast” on a hero banner, I’m expecting that to mean the speed of the language&#x2F;framework itself. Anybody else see it similarly or am I just being cranky?<p>Anyways, I as an outsider see a lot more immediate value proposition on the Plain page than the Django one. Good job whomever put it together.
pphysch大约 1 个月前
I use Django at $DAYJOB for multiple projects and love it but definitely see its age. I would never migrate to something &quot;slightly different&quot; like this.<p>I have a different approach to &quot;modernizing Django&quot;, which is to write a spiritual successor ORM from scratch, which is Postgres-only and be &quot;closer to the metal&quot; while maintaining a porcelain Python API. Sounds insane, but &quot;just use Postgres&quot; is real and it already has a number of killer features that aren&#x27;t possible in (core) Django due to its complexity and commitment to a standard SQL abstraction.
评论 #43516311 未加载
sgammon大约 1 个月前
By what metric is Python the most popular language on earth? I&#x27;m actually curious, genuinely asking. I thought JavaScript (Node) was king of newly written code, but perhaps that is outdated information.
评论 #43514531 未加载
评论 #43515854 未加载
timkofu大约 1 个月前
I’ve been using Django several years now. It works. Some things could be more straightforward, but once they work, they’re stable. I’ll keep an open mind though.
评论 #43517540 未加载
pknerd大约 2 个月前
Kind of off-topic, but I liked the concept of &quot;llms.txt&quot;, something similar to robots.txt<p><a href="https:&#x2F;&#x2F;plainframework.com&#x2F;llms.txt" rel="nofollow">https:&#x2F;&#x2F;plainframework.com&#x2F;llms.txt</a><p>Since so many LLMs are around, there should be a standard URI to let LLM crawl about the website&#x2F;product
评论 #43513417 未加载
system7rocks大约 2 个月前
I&#x27;m still waiting for a truly cross-platform framework using Python that builds natively and beautifully on ANY platform - from the Apple IIGS to MacOS M4 to web to Windows to Linux. With a click of a button. So I wasn&#x27;t pleased to read how limited this framework is. Still waiting, I guess?
评论 #43513082 未加载
评论 #43512891 未加载
eclipxe大约 2 个月前
This looks pretty cool! Would be nice to see an integration with Tetra
oliwarner大约 1 个月前
Almost at 1.0 and this is the state of the docs? Linked from the home page.<p><a href="https:&#x2F;&#x2F;plainframework.com&#x2F;docs&#x2F;plain-api&#x2F;plain&#x2F;api&#x2F;README.md" rel="nofollow">https:&#x2F;&#x2F;plainframework.com&#x2F;docs&#x2F;plain-api&#x2F;plain&#x2F;api&#x2F;README.m...</a> <a href="https:&#x2F;&#x2F;plainframework.com&#x2F;docs&#x2F;plain-mail&#x2F;plain&#x2F;mail" rel="nofollow">https:&#x2F;&#x2F;plainframework.com&#x2F;docs&#x2F;plain-mail&#x2F;plain&#x2F;mail</a><p>Yikes. If you want to fork a project, rather than contribute, bring better game.
Dotnaught大约 1 个月前
&quot;Plain was forked inside of PullApprove — a revenue-generating SaaS with Fortune 500 customers.&quot;<p>So...an effort to commercialize open source?
peternilson大约 2 个月前
Django still lacks typing support. Does Plain improve on this at all? I didn&#x27;t see typing mentioned in the docs..
评论 #43512916 未加载
评论 #43513078 未加载
评论 #43512910 未加载
sgammon大约 1 个月前
Also, is there a Discord? Where&#x27;s the community gathering? I&#x27;d like to try it :) looks neat.
bastawhiz大约 1 个月前
I&#x27;m really confused about what this project accomplishes. I agree that Django makes me jump through some unusual hoops (I simply never want to use views, forms, form sets, django email&#x2F;caching&#x2F;etc.) to use the subset I want, but I know that it&#x27;ll &quot;just work&quot;.<p>From the project&#x27;s About page:<p>&gt; What if you didn&#x27;t have to worry about deprecation policies?<p>So nothing will ever get deprecated? Or things I use will just get ripped out?<p>&gt; What if there were no committees?<p>As a user of the framework, is this supposed to appeal to me?<p>&gt; What if you could change anything without consequence?<p>This sounds like a nightmare for a user.<p>&gt; What if Django wasn&#x27;t originally built for a newspaper circa 2003?<p>Does Django really carry that much (read: any) baggage from 22 years ago? It certainly doesn&#x27;t feel like it.<p>---<p>Like I&#x27;m all for a good fork, especially if you&#x27;re exploring something. But this project is telling me to use it _instead of django_ and other than &quot;we have some third party packages built-in&quot; it really doesn&#x27;t tell me _why_ I should be using it. Frankly it feels like I&#x27;d be cooked if I chose this, since migrating back to Django proper if&#x2F;when this becomes abandoned feels daunting.<p>There&#x27;s not a philosophical reason (e.g., licensing) to choose this over Django, nor is there a meaningful cost that&#x27;s being avoided.<p>You instantly become reliant on the Plain BDFL to upstream security patches. If that ever happens.<p>Everything and anything is liable to break at any time, since the project professes no obvious forward or backward compatibility.<p>What&#x27;s great about Django is that I know I can build against a major version and know I&#x27;m not going to have to spin my wheels for 8-24 hours trying to upgrade to the next major version because the security patch wasn&#x27;t backported to my version. I don&#x27;t want my framework to have exciting minor versions. I want my features to be exciting every 3-5 years where I can say &quot;alright, we&#x27;ll take the two weeks to upgrade to the next major version&quot;. Especially when most of the exciting features can be delivered by third party packages instead of the core.
dzonga大约 1 个月前
this is dope, seems a more modern django. the work done here can be leveraged into making django more awesome.
samchon大约 1 个月前
Challenging hard work. Hope to go well.
callc大约 1 个月前
I really wish projects would choose novel English words for their name rather than squat on commonly used ones.<p>Looking at you Meta, Apple, X
wiseowise大约 1 个月前
I will only use this if there’s a whole page full of cancer emojis and analogies written for two year old gen Zs.
indiantinker大约 2 个月前
Is there something like this available for Ts&#x2F;js folks? This looks quite complete.
revskill大约 1 个月前
Sorry, can&#x27;t work without typesafety.
评论 #43515711 未加载
heresjohnny大约 1 个月前
I miss a thorough explanation of how Plain is fundamentally different than Django + extensions. Good luck though
thundervelvet大约 1 个月前
cool
danpalmer大约 2 个月前
&gt; Plain is a fork of Django<p>Why. This makes me sad. Plain looks great, but Django&#x27;s strength is its maturity and amazing, enduring community built on contributions from thousands. Forking it will at best split contributions and mean infrequent merges, and at worst means Plain users lose out on Django improvements and Django users lose out on Plain patches.<p>It seems like Plain could be <i>just</i> a set of Django packages known to work together, and perhaps a new wrapper script replacing `django-admin`, but instead it appears it is a true fork.<p>Plain basically looks great. I love Django, and this is a long list of things that I&#x27;d need on top of Django anyway. Would I use a framework on top of a framework like this? I&#x27;m not sure. I just wish it was built in a way that contributed to the Django community instead of one that divides it.
评论 #43514468 未加载
评论 #43512854 未加载
评论 #43513104 未加载
评论 #43513342 未加载
评论 #43513063 未加载
评论 #43513224 未加载
评论 #43513037 未加载
评论 #43516716 未加载
评论 #43512920 未加载
评论 #43513446 未加载
评论 #43516766 未加载
评论 #43512813 未加载
phowat大约 2 个月前
I really don&#x27;t understand why every time a big project is forked People are so upset. IMO, one of the great things about open source software is that a fork is possible. Maybe it will go nowhere, maybe some good ideas will be fed back to Django, maybe it will become the new standard. Most of the time , we will end up with better software overall.
评论 #43513068 未加载
评论 #43516771 未加载
babuloseo大约 2 个月前
What are they doing that <a href="https:&#x2F;&#x2F;django-ninja.dev&#x2F;" rel="nofollow">https:&#x2F;&#x2F;django-ninja.dev&#x2F;</a> isnt doing?
catlover76大约 1 个月前
This seems to have all the same pain-points as idiosyncrasies as Django, but it&#x27;s just not Django, it&#x27;s a copy, so why would I use it instead of using the more standard thing?
reffaelwallen大约 2 个月前
How come Plain looks so much like Django?
评论 #43512748 未加载
评论 #43512734 未加载
评论 #43512742 未加载
评论 #43512737 未加载
justinko大约 1 个月前
The world’s most popular programming language that’s also the ugliest.
评论 #43517652 未加载
Gabrys1大约 1 个月前
For a web framework for building in Python, use webpy:<p>“Django lets you write web apps in Django. TurboGears lets you write web apps in TurboGears. Web.py lets you write web apps in Python.”<p><a href="https:&#x2F;&#x2F;webpy.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;webpy.org&#x2F;</a>
inSenCite大约 1 个月前
As a python&#x2F;stats focused dev, I just want a web framework that simplifies the idea -&gt; website process.<p>I&#x27;ve been able to &#x27;release&#x27; some simple tools into the public with plotly&#x2F;django, but having to also then figure out things like gunicorn, dbms, vps hosting etc. is quite time consuming.<p>My biggest issue is that a lot of these frameworks seem to add complexity (under the guise of simplicity) as opposed to making things simpler. They just become more things to manage. Maybe I&#x27;m missing something and someone can point me in the right direction.<p>There are lots of pros on here who will find things like this trivial, but for someone like me (independent with limited professional dev training) the time investment is high as is the cost of &quot;switching&quot; between what seem to be mutually exclusive tasks (web dev&#x2F;ops, and local analytics work).
评论 #43516566 未加载