Microdot: Yet another Python web framework(blog.miguelgrinberg.com)
blog.miguelgrinberg.com
Microdot: Yet another Python web framework
https://blog.miguelgrinberg.com/post/microdot-yet-another-python-web-framework
27 comments
Microdot creator here. Happy to answer any questions about Microdot if you have any!
I love your docs - went through a major part of it on a mobile yesterday and basically understood how things work. Which is a nice result, as I usually don't code at all, sometimes script.
I felt similar simplicity with a few python projects before (Flask included), but then noticed it was just a facade of "weird". This one gives me those vibes again and I want to find out if it will work out for some status pages I'm thinking of :)
Great work.
I felt similar simplicity with a few python projects before (Flask included), but then noticed it was just a facade of "weird". This one gives me those vibes again and I want to find out if it will work out for some status pages I'm thinking of :)
Great work.
The library looks quite similar to aiohttp (asyncio web server with route decorators and WebSocket support). Is there a reason to use one over the other if you're not using MicroPython? A feature comparison and/or benchmarks would be great.
You have some performance comparisons, but I'd like to see a table of the features it has over the mainstream frameworks. Is everything in the list at the top of the article something neither Flask nor FastAPI offer?
The main thing that none of the frameworks you know offer is being small enough to also work under MicroPython on $5 microcontrollers. I created Microdot a few years ago when I wanted to have a web interface to configure a thermostat that I built to control the heating in my house.
This is pretty cool! Always happy to see simple, small and performant frameworks. I know it's still young, but do you know if any companies or communities are already using it?
It has some traction in the MicroPython community, used with IoT projects running on microcontrollers.
Interesting. So the entire library is in these 11 files under src/microdot?
Yep!
Thanks for posting this! I am not planning any new projects but this is a cool example of implementing a micro-framework in Python. Might just use it as a reference to build my own.
As a side note, I noticed you have Flask tutorials, it could be interesting to make a tutorial on writing a framework from scratch using Microdot as a production ready example.
As a side note, I noticed you have Flask tutorials, it could be interesting to make a tutorial on writing a framework from scratch using Microdot as a production ready example.
what about a microtutorial series in 2 very small parts ? ;)
ps: jokes aside, thanks for the project, it's gonna be nice to experiment with embedded python using it
ps: jokes aside, thanks for the project, it's gonna be nice to experiment with embedded python using it
Did you name it after the LSD delivery mechanism?
pyATL organizer here. I was looking for a project to write a talk about and this is perfect. Thanks for sharing it.
If you’re ever in the Atlanta area please don’t hesitate to reach out. We’d love to have you hang out.
If you’re ever in the Atlanta area please don’t hesitate to reach out. We’d love to have you hang out.
Thanks, will keep it in mind!
Recent and related:
Microdot - https://news.ycombinator.com/item?id=38156060 - Nov 2023 (26 comments)
Microdot - https://news.ycombinator.com/item?id=38156060 - Nov 2023 (26 comments)
Am I correct to conclude that I should not/do not need to use framework like this one if the backend is only responding to REST requests?
I have written a few microservices/APIs with Microdot, actually. Works really well for that.
I use microdot on a pi pico w and while it does work it also runs the board out of ram and makes connecting to wifi somewhat nondeterministic.
I solved this my precompiling to bytecode both microdot and picozero libraries. Works great now, I just have to remember to do this again every time I update micropython.
I solved this my precompiling to bytecode both microdot and picozero libraries. Works great now, I just have to remember to do this again every time I update micropython.
I like the similarity to flask without the 'magic'
Is there any particular reason why you didn't add types to the params? I'm just curious why python devs don't embrace typing more.
is it only for small projects - or can it handle larger load?
If you deploy it with a production grade web server (uvicorn, etc.) it should be able to scale just fine, while using less RAM than the larger frameworks.
Where to buy ESP8266 with cash ?
Wish I could just go on craigslist and buy one so I can build minimal home automation
Wish I could just go on craigslist and buy one so I can build minimal home automation
probably the easiest way would be to buy an amazon gift card in cash and deliver it to a locker/shop for pickup, although you'd likely still need to link it to a phone number
I don't have much experience with soldering, but would it be possible to buy a device that uses this chip and take it out/re-use? E.g. this listing in my area: https://sfbay.craigslist.org/sby/atq/d/san-jose-tasmota-smar...
Just today I was working on my ESP32 MicroPython project, and I used Microdot for the first time (together with picocss and htmx). The documentation was sparse in places, but the source code was so niceley commented and easy to navigate that I figured everything out.