[{"data":1,"prerenderedAt":344},["ShallowReactive",2],{"project-26554451":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":29,"sentiment":30,"stance_mix":31,"scored_comments":35,"aspects":36,"strip":44,"post_text":45,"what":46,"said":83,"maker_in_thread":210,"shape":221,"grid":224,"attempts":305,"same_week":306,"maker_shows":33,"maker_hidden":336,"reader_version":337,"card":338},"26554451","PyWebIO","Write interactive web app in script way","title","Show HN: PyWebIO – Write interactive web app in script way","https:\u002F\u002Fgithub.com\u002Fwang0618\u002FPyWebIO","github.com","Wang0618",1616504430,2021,200,37,231,2533,10,"notable","dev_tools","web app framework for python scripts","library",[24,25,26,27,28],"python web framework","python gui","script web app","streamlit alternative","browser gui python","loved",0.395,{"positive":32,"neutral":32,"mixed":33,"critical":34},11,1,0,23,{"idea":37,"design":39,"docs":40,"performance":42,"execution":43},{"positive":38,"critical":34},5,{"positive":33,"critical":34},{"positive":41,"critical":34},3,{"positive":34,"critical":34},{"positive":34,"critical":34},[34,38,38,38,41,38,38,34,41,34,34,34,38,34,38,41,41,34,38,41,34,41,34,41,34,34,34,38,41,34,38,41,41,41,34,38,41],null,{"problem":47,"audience":54,"pricing":45,"motivation":45,"time_to_build":45,"stack":67,"openness":82,"stage":82,"team_size":82},{"value":48,"source":49,"evidence":50},"Turning Python terminal scripts into interactive web apps without HTML or JS knowledge","maker",[51],{"id":52,"by":11,"text":53},"26554488","PyWebIO is a Python library which provides a series of imperative functions to obtain user input and output on the browser. The input function of PyWebIO is blocking, and the…",{"value":55,"source":56,"evidence":57},"Python developers who want simple browser UIs for scripts","inferred",[58,59,63],{"id":52,"by":11,"text":53},{"id":60,"by":61,"text":62},"26555012","OttPeterR","As someone who has only done back end for years and is lazy and don’t want to learn front end stuff, this is an inviting way to break into that world for me.",{"id":64,"by":65,"text":66},"26555669","offtop5","Looks great, the docs look fine to me, but I would love instructions on how to deploy these applications. I imagine this will let Python devs create small web front ends very…",[68,72,76],{"value":69,"source":49,"evidence":70},"Python",[71],{"id":52,"by":11,"text":53},{"value":73,"source":49,"evidence":74},"Flask, Django, Tornado, aiohttp integration",[75],{"id":52,"by":11,"text":53},{"value":77,"source":49,"evidence":78},"WebSocket transport (HTTP polling optional)",[79],{"id":80,"by":11,"text":81},"26562895","Both http and websocket protocol can be used to implement server-browser communication in PyWebIO. The websocket is default, and you can use…","unknown",{"praise":84,"objections":120,"requests":137,"questions":154,"alternatives":175},[85,101,112],{"value":86,"source":87,"evidence":88},"Simple and easy to get started with","commenter",[89,93,97],{"id":90,"by":91,"text":92},"26557359","clipradiowallet","This was easy to install and get started with. I have a [ton] of one-off python scripts for various work-related purposes we all use. Things like PyWebIO can make them accessible…",{"id":94,"by":95,"text":96},"26555294","hultner","Looks really cool, I love how simple it is.",{"id":98,"by":99,"text":100},"26555209","pytlicek","Thanks for sharing. This is really awesome!",{"value":102,"source":87,"evidence":103},"Good documentation and examples",[104,108],{"id":105,"by":106,"text":107},"26574762","canada_dry","> the docs look fine to me I object! The docs and examples are fantastic.",{"id":109,"by":110,"text":111},"26555518","vsskanth","Examples and demo gifs look simple and easy to understand.",{"value":113,"source":87,"evidence":114},"Useful for turning internal scripts into tools for non-technical staff",[115,116],{"id":90,"by":91,"text":92},{"id":117,"by":118,"text":119},"26555979","JPKab","Excellent work, and thank you for sharing! I see some immediate applications for this at my job. Much appreciation!",[121,133],{"value":122,"source":87,"evidence":123},"Less polished than Streamlit and lacks deployment docs",[124,128,129],{"id":125,"by":126,"text":127},"26556265","manojlds","Not finding a reason to use this over Streamlit which is pretty polished and has good layout, pandas df support and other nice bells and whistles. Edit: actually did. Running…",{"id":64,"by":65,"text":66},{"id":130,"by":131,"text":132},"26559577","hirot890p","Looks awesome! Please add a step by step guide to deploy it to a web server.",{"value":134,"source":49,"evidence":135},"Documentation is hard to follow in places",[136],{"id":52,"by":11,"text":53},[138,147],{"value":139,"source":87,"evidence":140},"Step-by-step deployment guide",[141,142,143],{"id":130,"by":131,"text":132},{"id":64,"by":65,"text":66},{"id":144,"by":145,"text":146},"26556325","55555","I would love to use this. How do I deploy it to the web easily and cheaply?",{"value":148,"source":87,"evidence":149},"Example of integrating with existing web frameworks",[150],{"id":151,"by":152,"text":153},"26563386","simtel20","I'm giving this a spin for a small experiment that I'm playing with, however I need this to run alongside other code. I see the example for getting pywebio to work with its…",[155,161,168],{"value":156,"source":87,"evidence":157},"How does it compare to Streamlit",[158],{"id":159,"by":118,"text":160},"26555224","How is this different from streamlit? Curious.",{"value":162,"source":87,"evidence":163},"Does it re-execute the whole script like Streamlit",[164],{"id":165,"by":166,"text":167},"26558169","yamrzou","So, PyWebIO doesn't re-execute the whole script like Streamlit does? I use streamlit, and that's one of its pain points. If the script is complicated, re-execution becomes slow.…",{"value":169,"source":87,"evidence":170},"Security considerations for password-protected apps",[171],{"id":172,"by":173,"text":174},"26557199","RandomWorker","This is awesome! I'm going to use this to make a couple of applications! I've been looking for something to quickly make something easy for my clients. I'll probably put these…",[176,185,192,199,203],{"value":177,"source":87,"evidence":178},"Streamlit",[179,183,184],{"id":180,"by":181,"text":182},"26555109","jimsparkman","Fantastic work! This looks like an arguably better\u002Fmore generalized version of something like Streamlit. Great concept for building rapid applications.",{"id":159,"by":118,"text":160},{"id":125,"by":126,"text":127},{"value":186,"source":87,"evidence":187},"Gradio",[188],{"id":189,"by":190,"text":191},"26561026","Aliabid94","Gradio is another one optimized for testing functions \u002F ML models. https:\u002F\u002Fgradio.app",{"value":193,"source":87,"evidence":194},"Anvil",[195],{"id":196,"by":197,"text":198},"26557523","bbaumgar","Between idom[0], streamlit[1], anvil[2], and PyWebIO this space is moving quickly. While it's a little rough around the edges, idom has worked great for us. I look forward to…",{"value":200,"source":87,"evidence":201},"Idom",[202],{"id":196,"by":197,"text":198},{"value":204,"source":87,"evidence":205},"Pyodide",[206],{"id":207,"by":208,"text":209},"26562637","protoduction","You could run them in the browser using something like Pyodide [0]! [0]: https:\u002F\u002Fgithub.com\u002Fiodide-project\u002Fpyodide",{"comments":211,"answered":212,"key":213},7,4,[214,215,218],{"id":52,"text":53},{"id":216,"text":217},"26564099","You can place a password validation input at the beginning of the code and return directly if the validation does not pass. PyWebIO ensures that only users who have passed the…",{"id":219,"text":220},"26555731","Streamlit uses a responsive way to get input and doesn't rely on callbacks at all. Every time a user interacts with a widget, your script is re-executed and the output value of…",{"commenters":222,"max_depth":212,"maker_replies":211,"first_comment_mins":212,"lifespan_hours":223},29,35,[225,227,229,231,233,237,238,239,241,242,246,247,251,253,254,255,256,257,258,260,262,265,267,269,272,276,279,282,285,287,289,290,293,296,299,300,303],[52,34,34,226,11,33],"project\u002Fneutral\u002Fidea",[180,34,38,228,181,34],"project\u002Fpositive\u002Fidea",[94,34,38,230,95,34],"project\u002Fpositive\u002Fdesign",[64,34,38,232,65,34],"project\u002Fpositive\u002Fdocs",[234,34,41,235,236,34],"26558069","project\u002Fneutral\u002Fdocs","raghavkhanna",[105,34,38,232,106,34],[172,34,38,228,173,34],[216,34,34,240,11,33],"project\u002Fneutral\u002Fprivacy",[196,33,41,226,197,34],[243,33,34,244,245,34],"26559672","other\u002Fneutral\u002Fnone","imhoguy",[189,33,34,244,190,34],[248,33,34,249,250,34],"26561459","other\u002Fcritical\u002Fperformance","ampdepolymerase",[90,252,38,228,91,34],2,[207,252,34,244,208,34],[60,41,38,228,61,34],[151,212,41,235,152,34],[159,38,41,226,118,34],[219,38,34,226,11,33],[117,38,38,259,118,34],"maker\u002Fpositive\u002Fnone",[165,38,41,261,166,34],"project\u002Fneutral\u002Fperformance",[263,38,34,264,11,33],"26561999","project\u002Fneutral\u002Fexecution",[125,38,41,266,126,34],"project\u002Fmixed\u002Fidea",[268,38,34,226,11,33],"26556375",[270,38,41,226,271,34],"26557910","michaelmior",[273,274,34,244,275,34],"26556556",6,"floatingleaf",[277,211,34,244,278,34],"26560520","TruthWillHurt",[280,211,34,244,281,34],"26560648","erichurkman",[283,284,38,228,236,34],"26554712",8,[130,286,41,235,131,34],9,[288,286,34,235,11,33],"26561891",[109,18,38,232,110,34],[291,32,41,261,292,34],"26556984","bernardv",[294,32,41,261,295,34],"26557210","crazypython",[297,32,41,261,298,34],"26557328","lovasoa",[80,32,34,264,11,33],[98,301,38,302,99,34],12,"project\u002Fpositive\u002Fnone",[144,304,41,264,145,34],13,[],[307,312,316,321,326,331],{"id":308,"name":309,"points":310,"category":311},"26568014","Practical Go Lessons",919,"languages",{"id":313,"name":314,"points":315,"category":20},"26503572","Sorted CSS Colors",559,{"id":317,"name":318,"points":319,"category":320},"26537734","compiler.org",219,"learning_science",{"id":322,"name":323,"points":324,"category":325},"26503715","LitiHolo",180,"hardware",{"id":327,"name":328,"points":329,"category":330},"26573930","Arc",175,"data",{"id":332,"name":333,"points":334,"category":335},"26527268","Papercups",148,"web_saas",false,"v2",{"id":339,"name":5,"line":6,"ai":336,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":340,"top":18,"kw":341,"maker":11,"domain":10,"tier":19,"attempts":34,"strip":342,"url":9,"mix":343,"praise":86,"objection":122,"sub":21},26554451,0.4,[24,25,26,27,28],"0555355030005053305303030005305333053",[32,32,33,34],1793991025591]