On 2017-10-22 12:24, Patrick Vrijlandt wrote: > I would like your recommendation on the choice of a web framework.
Might depend on what skills you already bring to the table. If you already know an ORM like SQLAlchemy or a template language like Jinja, you might want to take the "bring the pieces I know/like together" approach. For this, Bottle & Flask are the top contenders last I saw (I did some CherryPy contract work but the docs were pretty horrible at the time). If you are genuinely coming to this greenfield, Django's docs/tutorials make it really easy to get up to speed with all of the parts involved as it has its own ORM and templating language. They can be swapped out if you later need to, but for the average project, they're sufficient and well documented. I happen to be in the Django camp, but based on my experiments with Bottle/Flask, can also recommend them without much hesitation. > The project is completely new, there are no histories to take into > account (current solutions are paper-based). The website involves > questionnaires that will be developed, filled out and stored. Users > are not programmers or developers. They should be authenticated. > Version control is required. I'm not sure what "version control is required" means in this context. Is this version-control of the users' answers? Or version-control of the source code. If it's the source code, the web framework won't help you there, but git, mercurial, or subversion are all good/reasonable choices. If you want to version your user's answers or other aspects of your application, you'll need to design it into your app. There might be plugins/modules to facilitate this on either side of the Django / Flask/Bottle/SQLAlchemy divide. > I'm targeting a single deployment (maybe a second on a > development machine). I usually work on Windows, but Linux can be > considered. While both *can* be deployed on Windows, a Unix-like OS (whether Linux, a BSD, or even a Mac) will likely give you a better deployment experience and better docs. > I'm not afraid to learn a (=one) new framework (that would actually > be fun) but trying out a lot of them is not feasible. My current > goal is a demonstration version of the project as a proof of > concept. I personally find that Django excels at these fast proof-of-concept projects, as you have less concern about integrating disparate pieces together at that stage. > I'm an experienced python programmer but not an experienced web > developer. Both sides offer a "Pythonic" feel to them (some feel less Pythonic) so it's easy to come up to speed on either. > A few years ago I read some books about Zope and Plone, Hah, Zope was my first introduction to Python and I ran screaming. I eventually came back around, but it was a jarring first experience. > The problem seems too complicated for micro frameworks like bottle > of Flask. Django could be the next alternative. Django is the top contender, so if you only have time to investigate one, I'd urge you in that direction. But Flask or Bottle can also certainly handle a project like the one you describe. > Finally, for a new project, I would not like to be confined to > Python 2.7. Flask/Bottle and Django are both Python3 ready. Django, since v2.0 is now 3.0 only. -tkc -- https://mail.python.org/mailman/listinfo/python-list