首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >flask-user:发送确认邮件失败,并显示flask-mail

flask-user:发送确认邮件失败,并显示flask-mail
EN

Stack Overflow用户
提问于 2020-04-22 01:34:35
回答 1查看 172关注 0票数 1

您好,我正在使用flask user来模拟使用确认邮件和登录进行注册,但在注册阶段,当用户提交表单时,我收到错误消息,告诉我没有初始化flask-Mail,而在我的代码中,我让它初始化,所以我一直在寻找这个错误的潜在问题,但我并没有真正发现是否有人可以帮助我修复它,我在下面放了来自错误的回溯

代码语言:javascript
复制
Traceback (most recent call last):
  File "C:\Users\hp\Travaux\flask-projet\flask_user_tuto\env\lib\site-packages\flask\app.py", line 2464, in __call__
    return self.wsgi_app(environ, start_response)
  File "C:\Users\hp\Travaux\flask-projet\flask_user_tuto\env\lib\site-packages\flask\app.py", line 2450, in wsgi_app
    response = self.handle_exception(e)
  File "C:\Users\hp\Travaux\flask-projet\flask_user_tuto\env\lib\site-packages\flask\app.py", line 1867, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "C:\Users\hp\Travaux\flask-projet\flask_user_tuto\env\lib\site-packages\flask\_compat.py", line 39, in reraise
    raise value
  File "C:\Users\hp\Travaux\flask-projet\flask_user_tuto\env\lib\site-packages\flask\app.py", line 2447, in wsgi_app
    response = self.full_dispatch_request()
  File "C:\Users\hp\Travaux\flask-projet\flask_user_tuto\env\lib\site-packages\flask\app.py", line 1952, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "C:\Users\hp\Travaux\flask-projet\flask_user_tuto\env\lib\site-packages\flask\app.py", line 1821, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "C:\Users\hp\Travaux\flask-projet\flask_user_tuto\env\lib\site-packages\flask\_compat.py", line 39, in reraise
    raise value
  File "C:\Users\hp\Travaux\flask-projet\flask_user_tuto\env\lib\site-packages\flask\app.py", line 1950, in full_dispatch_request
    rv = self.dispatch_request()
  File "C:\Users\hp\Travaux\flask-projet\flask_user_tuto\env\lib\site-packages\flask\app.py", line 1936, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "C:\Users\hp\Travaux\flask-projet\flask_user_tuto\env\lib\site-packages\flask_user\views.py", line 448, in register
    _send_registered_email(user, user_email, require_email_confirmation)
  File "C:\Users\hp\Travaux\flask-projet\flask_user_tuto\env\lib\site-packages\flask_user\views.py", line 678, in _send_registered_email
    emails.send_registered_email(user, user_email, confirm_email_link)
  File "C:\Users\hp\Travaux\flask-projet\flask_user_tuto\env\lib\site-packages\flask_user\emails.py", line 151, in send_registered_email
    user_manager.send_email_function(email, subject, html_message, text_message)
  File "C:\Users\hp\Travaux\flask-projet\flask_user_tuto\env\lib\site-packages\flask_user\emails.py", line 43, in send_email
    raise SendEmailError('Flask-Mail has not been initialized. Initialize Flask-Mail or disable USER_SEND_PASSWORD_CHANGED_EMAIL, USER_SEND_REGISTERED_EMAIL and USER_SEND_USERNAME_CHANGED_EMAIL')
flask_user.emails.send_email.<locals>.SendEmailError: Flask-Mail has not been initialized. Initialize Flask-Mail or disable USER_SEND_PASSWORD_CHANGED_EMAIL, USER_SEND_REGISTERED_EMAIL and USER_SEND_USERNAME_CHANGED_EMAIL

我也将初始化应用程序的init文件的代码放在下面

代码语言:javascript
复制
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import os
from flask_user import SQLAlchemyAdapter, UserManager
db = SQLAlchemy()
from . models import User


def create_app():
    application = Flask(__name__)

    application.config['SECRET_KEY'] = os.urandom(24)
    application.config['CSRF_ENABLED'] = True
    application.config['DEBUG'] = True
    application.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///C:\\users\\hp\\travaux\\flask-projet\\flask_user_tuto\\mydb.db'
    application.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
    application.config['USER_ENABLE_EMAIL'] = True
    application.config['MAIL_USERNAME'] = '*******@gmail.com'
    application.config['MAIL_PASSWORD'] = '*******'
    application.config['MAIL_DEFAULT_SENDER'] = ('APPNAME', '******@gmail.com')
    application.config['MAIL_SERVER'] = 'smtp.gmail.com'
    application.config['MAIL_PORT'] = 465
    application.config['MAIL_USE_SSL'] = True
    application.config['MAIL_USE_TLS'] = False

    from . import models

    db.init_app(application)

    with application.app_context():
        from . import app
        db.create_all()
    return application

下面是我的app.py的代码

代码语言:javascript
复制
from flask import current_app as app
from . import db
from .models import User
from flask_user import UserManager, SQLAlchemyAdapter, login_required


db_manager = SQLAlchemyAdapter(db, User)

user_manager = UserManager(db_manager, app)


@app.route('/')
def index():
    return ' welcome in the unprotected route'


@app.route('/profile')
@login_required
def profile():
    return 'you are in the procteted route '
EN

回答 1

Stack Overflow用户

发布于 2021-04-01 21:00:39

你好,我正在经历同样的事情。我把Flask_user改成了0.6.13版,它工作得很好。使用pip install FLASK_USER==0.6.13卸载并安装您已有的flask_user版本

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61349588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档