Without making grand pronouncements about The Right Way, I at least get why the Go community shies away from all-inclusive frameworks after years of using Django. An all-inclusive framework is super helpful for getting started quickly, but the way its components can be deeply tied with each other can make life tricky when you want to do some things that weren't quite what the framework authors envisioned. If you glued the components together yourself, you at least know they're separable and where they fit together.<p>There are popular packages for the sorts of things that a lower-level Python framework might:<p>- <a href="http://www.gorillatoolkit.org/" rel="nofollow">http://www.gorillatoolkit.org/</a> has a more flexible router, sessions, and some other basics on the Web side<p>- Built-in html/template is a pretty good place to start. (The context-aware escaping is something I wish I had.)<p>- Popular database tools include jmoiron/sqlx and jinzhu/gorm on GitHub.<p>- gokit.io is mostly about internal services rather than frontends, but may have parts of general interest. It includes example services.<p>- godoc.org links to a bunch of popular packages and has search and such. Incidentally, its own source is available: <a href="https://github.com/golang/gddo" rel="nofollow">https://github.com/golang/gddo</a><p>I'd say Go is not going to get you to a releasable DB-backed Web app anywhere near as fast as Django or any of the other well-known dyn-language frameworks. I think the language has the bones where you could <i>get</i> that sort of app to faster time-to-first-usefulness, without entirely giving up the easy-to-follow-what's-happening and pick-your-parts aspects, but probably not there now.
OP's question is far too broad to elicit useful answers.<p>Start with a feature list of what you require from the framework.<p><pre><code> - Validation
- Routing
- Security
- Filtering
- Templating
- Data binding
- Component reuse
...</code></pre>
I think the idea of a web framework in Go is too application level oriented where as Go is a great language to write infrastructure. If you implement a microservice, look for microservice frameworks. A web application itself seems to broad. I would almost always recommend to find a custom implementation.
Really really close to flagging this. There is no "best X" for any X. At least not without adding lots of context (and then it gets boring for other people since these details probably are not interesting for them).