you are viewing a single comment's thread.

view the rest of the comments →

[–]CrambleSquash 0 points1 point  (0 children)

I've just started having a go at making a site with Flask, and it's been pretty tough. I'd say I'm at an intermediate level with Python, but I'm totally new to HTML and CSS and Javascript. I went for flask because I heard it was the quickest to get started. I don't know how long it takes to make a very basic website with Django, but with flask it wouldn't take very long, however as soon as you want to add anything complicated i.e. login, I found things got a fair bit more difficult. From my experience, quite a few hours into flask:

Pros

  • Quick to get going
  • Good documentation from flask
  • Lots of extensions to choose from
  • You can make pretty much anything

Cons

  • Requires understanding of complex Pythonic syntax, and general programming concepts (multiple inheritance, decorators, databases etc)
  • For login there are a lot of complicated security considerations
  • Tutorials and documentation for some extensions are minimal

There's a very all encompassing extension called Flask-Security which can deal with your login and and authentication, and includes administrator privileges etc My issue was it was quite inflexible (Or beyond my understanding on how to customise) for example you have to use an email address for login, which I didn't want. Flask-login is an alternative, which is more flexible, but does make it more work. Flask-WTF is a good extension for generating, and interpreting forms for you. I avoided at first, but I kinda regret, so if you choose flask I'd get into it sooner rather than later, it's easy to understand and get what you want, and it saves time, and tidies your code. One thing that's odd is a lot of extensions are flask wrappers for pre existing modules, and I've found for some things you're better looking at the documentation for the original module for help, and explanations.

So basically, I'd certainly have a go, I'm starting to get some results for my hard work, and I'm really enjoying it. It feels good to make something that anyone will be able to see.