Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python AssertionError:View函数映射正在覆盖现有端点函数:home-flask_Python_Flask - Fatal编程技术网

Python AssertionError:View函数映射正在覆盖现有端点函数:home-flask

Python AssertionError:View函数映射正在覆盖现有端点函数:home-flask,python,flask,Python,Flask,我正在努力克服困难 因此,我认为问题可能在导入语句中,或者至少在第一条路径之前: from intro_to_flask import app from flask import render_template, request, flash, session, url_for, redirect from forms import ContactForm, SignupForm, SigninForm from flask.ext.mail import Mail, Message from

我正在努力克服困难

因此,我认为问题可能在导入语句中,或者至少在第一条路径之前:

from intro_to_flask import app
from flask import render_template, request, flash, session, url_for, redirect
from forms import ContactForm, SignupForm, SigninForm
from flask.ext.mail import Mail, Message
from models import db, User

mail = Mail()
编辑2:

from flask import Flask

app = Flask(__name__)

app.secret_key = 'development key'

app.config["MAIL_SERVER"] = "smtp.gmail.com"
app.config["MAIL_PORT"] = 465
app.config["MAIL_USE_SSL"] = True
app.config["MAIL_USERNAME"] = 'contact@example.com'
app.config["MAIL_PASSWORD"] = 'your-password'

from routes import mail
mail.init_app(app)

app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://your-username:your-password@localhost/development'

from models import db
db.init_app(app)

import intro_to_flask.routes

此错误是因为您是循环导入应用程序(您在routes.py中导入了应用程序,在app中导入了routes.py) 这种模式不起作用,也不正确。 在flask中,您可以在单个文件中编写整个应用程序,也可以使用flask蓝图在模块中制作

您的应用程序可以在单个文件中工作:

from flask import render_template, request, flash, session, url_for, redirect
from forms import ContactForm, SignupForm, SigninForm
from flask.ext.mail import Message, Mail
from models import db, User

from flask import Flask

app = Flask(__name__)

app.secret_key = 'development key'

app.config["MAIL_SERVER"] = "smtp.gmail.com"
app.config["MAIL_PORT"] = 465
app.config["MAIL_USE_SSL"] = True
app.config["MAIL_USERNAME"] = 'contact@example.com'
app.config["MAIL_PASSWORD"] = 'your-password'

mail = Mail()

mail.init_app(app)

app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://your-username:your-password@localhost/development'

from models import db
db.init_app(app)



@app.route('/')
def home():
    return render_template('home.html')


@app.route('/about')
def about():
    return render_template('about.html')


@app.route('/contact', methods=['GET', 'POST'])
def contact():
    form = ContactForm()

    if request.method == 'POST':
        if form.validate() == False:
            flash('All fields are required.')
            return render_template('contact.html', form=form)
        else:
            msg = Message(form.subject.data, sender='contact@example.com', recipients=['your_email@example.com'])
            msg.body = """
            From: %s <%s>
            %s
            """ % (form.name.data, form.email.data, form.message.data)
            mail.send(msg)

            return render_template('contact.html', success=True)

    elif request.method == 'GET':
        return render_template('contact.html', form=form)


@app.route('/signup', methods=['GET', 'POST'])
def signup():
    form = SignupForm()

    if 'email' in session:
        return redirect(url_for('profile'))

    if request.method == 'POST':
        if form.validate() == False:
            return render_template('signup.html', form=form)
        else:
            newuser = User(form.firstname.data, form.lastname.data, form.email.data, form.password.data)
            db.session.add(newuser)
            db.session.commit()

            session['email'] = newuser.email
            return redirect(url_for('profile'))

    elif request.method == 'GET':
        return render_template('signup.html', form=form)


@app.route('/profile')
def profile():
    if 'email' not in session:
        return redirect(url_for('signin'))

    user = User.query.filter_by(email=session['email']).first()

    if user is None:
        return redirect(url_for('signin'))
    else:
        return render_template('profile.html')


@app.route('/signin', methods=['GET', 'POST'])
def signin():
    form = SigninForm()

    if 'email' in session:
        return redirect(url_for('profile'))

    if request.method == 'POST':
        if form.validate() == False:
            return render_template('signin.html', form=form)
        else:
            session['email'] = form.email.data
            return redirect(url_for('profile'))

    elif request.method == 'GET':
        return render_template('signin.html', form=form)


@app.route('/signout')
def signout():
    if 'email' not in session:
        return redirect(url_for('signin'))

    session.pop('email', None)
    return redirect(url_for('home'))

app.run()
从flask导入呈现模板、请求、flash、会话、url、重定向
从表单导入ContactForm、SignupForm、SignInfo表单
从flask.ext.mail导入消息,邮件
从模型导入数据库,用户
从烧瓶进口烧瓶
app=烧瓶(名称)
app.secret_key='开发密钥'
app.config[“邮件服务器”]=“smtp.gmail.com”
app.config[“邮件端口”]=465
app.config[“邮件使用SSL”]=True
app.config[“邮件\用户名”]='contact@example.com'
app.config[“邮件密码”]=“您的密码”
mail=mail()
mail.init_应用程序(应用程序)
app.config['SQLALCHEMY\u DATABASE\u URI']='mysql://your-username:your-password@localhost/发展'
从模型导入数据库
db.init_应用程序(应用程序)
@应用程序路径(“/”)
def home():
返回渲染模板('home.html')
@app.route(“/about”)
def about():
返回render_模板('about.html')
@app.route('/contact',methods=['GET','POST'])
def contact():
form=ContactForm()
如果request.method==“POST”:
如果form.validate()==False:
flash('所有字段都是必需的')
返回呈现模板('contact.html',form=form)
其他:
msg=消息(form.subject.data,sender=)contact@example.com,收件人=['您的_email@example.com'])
msg.body=“”
发件人:%s
%
“”“%(form.name.data、form.email.data、form.message.data)
邮件发送(msg)
返回呈现模板('contact.html',success=True)
elif request.method==“GET”:
返回呈现模板('contact.html',form=form)
@app.route('/signup',methods=['GET','POST'])
def signup():
表单=注册表单()
如果会话中出现“电子邮件”:
返回重定向(url_用于('profile'))
如果request.method==“POST”:
如果form.validate()==False:
返回呈现模板('signup.html',form=form)
其他:
newuser=User(form.firstname.data、form.lastname.data、form.email.data、form.password.data)
db.session.add(newuser)
db.session.commit()
会话['email']=newuser.email
返回重定向(url_用于('profile'))
elif request.method==“GET”:
返回呈现模板('signup.html',form=form)
@app.route(“/profile”)
def配置文件():
如果“电子邮件”不在会话中:
返回重定向(url_for('signin'))
user=user.query.filter_by(email=session['email'])。first()
如果用户为无:
返回重定向(url_for('signin'))
其他:
返回渲染模板('profile.html')
@app.route('/signin',methods=['GET','POST'])
def signin():
形式=符号形式()
如果会话中出现“电子邮件”:
返回重定向(url_用于('profile'))
如果request.method==“POST”:
如果form.validate()==False:
返回呈现模板('signin.html',form=form)
其他:
会话['email']=form.email.data
返回重定向(url_用于('profile'))
elif request.method==“GET”:
返回呈现模板('signin.html',form=form)
@app.route(“/signout”)
def signout():
如果“电子邮件”不在会话中:
返回重定向(url_for('signin'))
session.pop('email',无)
返回重定向(url_for('home'))
app.run()

此错误是因为您是循环导入应用程序(您在routes.py中导入了应用程序,在app中导入了routes.py) 这种模式不起作用,也不正确。 在flask中,您可以在单个文件中编写整个应用程序,也可以使用flask蓝图在模块中制作

您的应用程序可以在单个文件中工作:

from flask import render_template, request, flash, session, url_for, redirect
from forms import ContactForm, SignupForm, SigninForm
from flask.ext.mail import Message, Mail
from models import db, User

from flask import Flask

app = Flask(__name__)

app.secret_key = 'development key'

app.config["MAIL_SERVER"] = "smtp.gmail.com"
app.config["MAIL_PORT"] = 465
app.config["MAIL_USE_SSL"] = True
app.config["MAIL_USERNAME"] = 'contact@example.com'
app.config["MAIL_PASSWORD"] = 'your-password'

mail = Mail()

mail.init_app(app)

app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://your-username:your-password@localhost/development'

from models import db
db.init_app(app)



@app.route('/')
def home():
    return render_template('home.html')


@app.route('/about')
def about():
    return render_template('about.html')


@app.route('/contact', methods=['GET', 'POST'])
def contact():
    form = ContactForm()

    if request.method == 'POST':
        if form.validate() == False:
            flash('All fields are required.')
            return render_template('contact.html', form=form)
        else:
            msg = Message(form.subject.data, sender='contact@example.com', recipients=['your_email@example.com'])
            msg.body = """
            From: %s <%s>
            %s
            """ % (form.name.data, form.email.data, form.message.data)
            mail.send(msg)

            return render_template('contact.html', success=True)

    elif request.method == 'GET':
        return render_template('contact.html', form=form)


@app.route('/signup', methods=['GET', 'POST'])
def signup():
    form = SignupForm()

    if 'email' in session:
        return redirect(url_for('profile'))

    if request.method == 'POST':
        if form.validate() == False:
            return render_template('signup.html', form=form)
        else:
            newuser = User(form.firstname.data, form.lastname.data, form.email.data, form.password.data)
            db.session.add(newuser)
            db.session.commit()

            session['email'] = newuser.email
            return redirect(url_for('profile'))

    elif request.method == 'GET':
        return render_template('signup.html', form=form)


@app.route('/profile')
def profile():
    if 'email' not in session:
        return redirect(url_for('signin'))

    user = User.query.filter_by(email=session['email']).first()

    if user is None:
        return redirect(url_for('signin'))
    else:
        return render_template('profile.html')


@app.route('/signin', methods=['GET', 'POST'])
def signin():
    form = SigninForm()

    if 'email' in session:
        return redirect(url_for('profile'))

    if request.method == 'POST':
        if form.validate() == False:
            return render_template('signin.html', form=form)
        else:
            session['email'] = form.email.data
            return redirect(url_for('profile'))

    elif request.method == 'GET':
        return render_template('signin.html', form=form)


@app.route('/signout')
def signout():
    if 'email' not in session:
        return redirect(url_for('signin'))

    session.pop('email', None)
    return redirect(url_for('home'))

app.run()
从flask导入呈现模板、请求、flash、会话、url、重定向
从表单导入ContactForm、SignupForm、SignInfo表单
从flask.ext.mail导入消息,邮件
从模型导入数据库,用户
从烧瓶进口烧瓶
app=烧瓶(名称)
app.secret_key='开发密钥'
app.config[“邮件服务器”]=“smtp.gmail.com”
app.config[“邮件端口”]=465
app.config[“邮件使用SSL”]=True
app.config[“邮件\用户名”]='contact@example.com'
app.config[“邮件密码”]=“您的密码”
mail=mail()
mail.init_应用程序(应用程序)
app.config['SQLALCHEMY\u DATABASE\u URI']='mysql://your-username:your-password@localhost/发展'
从模型导入数据库
db.init_应用程序(应用程序)
@应用程序路径(“/”)
def home():
返回渲染模板('home.html')
@app.route(“/about”)
def about():
返回render_模板('about.html')
@app.route('/contact',methods=['GET','POST'])
def contact():
form=ContactForm()
如果request.method==“POST”:
如果form.validate()==False:
flash('所有字段都是必需的')
返回呈现模板('contact.html',form=form)
其他:
msg=消息(form.subject.data,sender=)contact@example.com,收件人=['您的_email@example.com'])
msg.body=“”
发件人:%s
%
“”“%(form.name.data、form.email.data、form.message.data)
邮件发送(msg)
返回呈现模板('contact.html',success=True)
elif request.method==“GET”:
返回呈现模板('contact.html',form=form)
@app.route('/signup',methods=['GET','POST'])
def signup():
表单=注册表单()
如果会话中出现“电子邮件”:
返回重定向(url_用于('profile'))
如果request.method==“POST”:
如果form.validate()==False:
返回呈现模板('signup.html',form=form)
其他:
newuser=User(form.firstname.data、form.lastname.data、form.email.data、form.password.d
from flask import Flask

app = Flask(__name__)

app.secret_key = 'development key'

app.config["MAIL_SERVER"] = "smtp.gmail.com"
app.config["MAIL_PORT"] = 465
app.config["MAIL_USE_SSL"] = True
app.config["MAIL_USERNAME"] = 'contact@example.com'
app.config["MAIL_PASSWORD"] = 'your-password'

from routes import mail
mail.init_app(app)

app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://your-username:your-password@localhost/development'

from models import db
db.init_app(app)

import intro_to_flask.routes
from flask import render_template, request, flash, session, url_for, redirect
from forms import ContactForm, SignupForm, SigninForm
from flask.ext.mail import Message, Mail
from models import db, User

from flask import Flask

app = Flask(__name__)

app.secret_key = 'development key'

app.config["MAIL_SERVER"] = "smtp.gmail.com"
app.config["MAIL_PORT"] = 465
app.config["MAIL_USE_SSL"] = True
app.config["MAIL_USERNAME"] = 'contact@example.com'
app.config["MAIL_PASSWORD"] = 'your-password'

mail = Mail()

mail.init_app(app)

app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://your-username:your-password@localhost/development'

from models import db
db.init_app(app)



@app.route('/')
def home():
    return render_template('home.html')


@app.route('/about')
def about():
    return render_template('about.html')


@app.route('/contact', methods=['GET', 'POST'])
def contact():
    form = ContactForm()

    if request.method == 'POST':
        if form.validate() == False:
            flash('All fields are required.')
            return render_template('contact.html', form=form)
        else:
            msg = Message(form.subject.data, sender='contact@example.com', recipients=['your_email@example.com'])
            msg.body = """
            From: %s <%s>
            %s
            """ % (form.name.data, form.email.data, form.message.data)
            mail.send(msg)

            return render_template('contact.html', success=True)

    elif request.method == 'GET':
        return render_template('contact.html', form=form)


@app.route('/signup', methods=['GET', 'POST'])
def signup():
    form = SignupForm()

    if 'email' in session:
        return redirect(url_for('profile'))

    if request.method == 'POST':
        if form.validate() == False:
            return render_template('signup.html', form=form)
        else:
            newuser = User(form.firstname.data, form.lastname.data, form.email.data, form.password.data)
            db.session.add(newuser)
            db.session.commit()

            session['email'] = newuser.email
            return redirect(url_for('profile'))

    elif request.method == 'GET':
        return render_template('signup.html', form=form)


@app.route('/profile')
def profile():
    if 'email' not in session:
        return redirect(url_for('signin'))

    user = User.query.filter_by(email=session['email']).first()

    if user is None:
        return redirect(url_for('signin'))
    else:
        return render_template('profile.html')


@app.route('/signin', methods=['GET', 'POST'])
def signin():
    form = SigninForm()

    if 'email' in session:
        return redirect(url_for('profile'))

    if request.method == 'POST':
        if form.validate() == False:
            return render_template('signin.html', form=form)
        else:
            session['email'] = form.email.data
            return redirect(url_for('profile'))

    elif request.method == 'GET':
        return render_template('signin.html', form=form)


@app.route('/signout')
def signout():
    if 'email' not in session:
        return redirect(url_for('signin'))

    session.pop('email', None)
    return redirect(url_for('home'))

app.run()