I do not drive where I did not go there

routes.py

from app import app from flask import render_template, flash, redirect, url_for, request from werkzeug.urls import url_parse from flask_login import current_user, login_user, logout_user, login_required from app.forms import LoginForm from app.models import User @app.route('/') @app.route('/index') @login_required def index(): user = {'username': 'Pavel'} posts = [ { 'autor': {'username': 'Loh'}, 'body': 'Ebat` kolotit`', }, { 'autor': {'username': 'Petya'}, 'body': 'Nu nihuya sebe' }, { 'autor': {'username': 'Vasya'}, 'body': 'Ebushki Vorobushki' } ] return render_template('index.html', title='Home', user=user, posts=posts) @app.route('/login', methods=['GET', 'POST']) def login(): if current_user.is_authenticated: return redirect(url_for('index')) form = LoginForm() if form.validate_on_submit(): user = User.query.filter_by(username=form.username.data).first() if user is None or not user.check_password(form.password.data): flash('Не валидные данные') return redirect(url_for('login')) login_user(user, remember=form.remember_me.data) next_page = request.args.get('next') if not next_page or url_parse(next_page).netloc != '': next_page = url_for('index') return redirect(next_page) @app.route('/logout') def logout(): logout_user() return redirect(url_for('index')) 

werkzeug

 Traceback (most recent call last): File "/home/kiril/microblog/codenv/lib/python3.5/site-packages/flask/app.py", line 1997, in __call__ return self.wsgi_app(environ, start_response) File "/home/kiril/microblog/codenv/lib/python3.5/site-packages/flask/app.py", line 1985, in wsgi_app response = self.handle_exception(e) File "/home/kiril/microblog/codenv/lib/python3.5/site-packages/flask/app.py", line 1540, in handle_exception reraise(exc_type, exc_value, tb) File "/home/kiril/microblog/codenv/lib/python3.5/site-packages/flask/_compat.py", line 33, in reraise raise value File "/home/kiril/microblog/codenv/lib/python3.5/site-packages/flask/app.py", line 1982, in wsgi_app response = self.full_dispatch_request() File "/home/kiril/microblog/codenv/lib/python3.5/site-packages/flask/app.py", line 1615, in full_dispatch_request return self.finalize_request(rv) File "/home/kiril/microblog/codenv/lib/python3.5/site-packages/flask/app.py", line 1630, in finalize_request response = self.make_response(rv) File "/home/kiril/microblog/codenv/lib/python3.5/site-packages/flask/app.py", line 1725, in make_response raise ValueError('View function did not return a response') ValueError: View function did not return a response 

    2 answers 2

    Logically, the login() view returns None if the form has not been validated.

    • Well, yes, and return flash !!?!? - htaccess
    • Not. If the validate_on_submit() method in the if form.validate_on_submit(): condition if form.validate_on_submit(): returns a false value, the login() function returns None , since there is no else branch. - Sergey Gornostaev
    • c else returns the same - htaccess
    • @htaccess with exactly what else? - andreymal

    after

     return redirect(next_page) 

    need to return the template

     return render_template('login.html', title='Sign In', form=form)