def post(self):
        text = request.form['text']

        # numbers first - easier to ask forgiveness than permission
        movies = []
        try:
            movies = Movies.objects(produced=datetime.strptime(text, "%Y"))

        except ValueError:
            # still numbers
            try:
                movies = Movies.objects(rating=float(text))

                # if we found nothing we intentionally raise an error
                # and we jump to the non-numeric checks
                if not movies:
                    raise ValueError

            # text is not numeric
            except ValueError:

                # search by movie name
                movies = Movies.objects(name__icontains=text)

                if not movies:
                    # text is genre
                    movies = Movies.objects(genre__iexact=text)

        return render_template('list.html', movies=movies)
    def get(self, genre=None):
        if genre is None:
            movies = Movies.objects.all()
        else:
            movies = Movies.objects(genre__iexact=genre)

        return render_template('list.html', movies=movies)
    def get(self, rating=None):
        if rating is None:
            movies = Movies.objects.all()
        else:
            movies = Movies.objects(rating=rating)

        return render_template('list.html', movies=movies)
 def get(self, percentage):
     cnt = Movies.objects().count()
     limit = cnt * int(percentage) / float(100)
     movies = Movies.objects[:int(round(limit, 0))]
     return render_template('list.html', movies=movies)
 def get(self):
     movies = Movies.objects(rating__lt=8.2)
     return render_template('list.html', movies=movies)
 def get(self):
     target_year = datetime.now().year - 5
     movies = Movies.objects(produced__gte=datetime.strptime(str(target_year), "%Y"))
     return render_template('list.html', movies=movies)
 def get(self, year):
     movies = Movies.objects(produced=datetime.strptime(year, "%Y"))
     return render_template('list.html', movies=movies)
 def get(self, name_like=None):
     movies = Movies.objects(name__icontains=name_like)
     return render_template('list.html', movies=movies)