python - flask拷贝源码第八章用户角色出现错误
问题描述
下午把第八章做完,网页可以登录,数据库也可以存入数据就是无法发邮箱信息,我于是就拷贝了源码,现在出现了新的问题,我和源码不同的是数据库配置这,我直接写死地址,下午的时候也是可以用的,我这邮箱也写死,之前测试过也没问题,我之前User和Role没有关联外键,书上有说数据库迁移,我也试了,但是不太确认,我想有可能是数据库这有问题,希望有人能帮下我,在此先谢谢了
错误sqlalchemy.exc.ProgrammingErrorsqlalchemy.exc.ProgrammingError: (pymysql.err.ProgrammingError) (1146, 'Table ’flask.users’ doesn’t exist') [SQL: ’SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.role_id AS users_role_id, users.password_hash AS users_password_hash, users.confirmed AS users_confirmed nFROM users nWHERE users.id = %(param_1)s’] [parameters: {’param_1’: 1}]
#coding:utf-8import osbasedir = os.path.abspath(os.path.dirname(__file__))class Config: SECRET_KEY = ’hard to guess string’ SSL_DISABLE = False SQLALCHEMY_COMMIT_ON_TEARDOWN = True SQLALCHEMY_TRACK_MODIFICATIONS = False SQLALCHEMY_RECORD_QUERIES = True MAIL_SERVER = ’smtp.163.com’ MAIL_PORT = 25 MAIL_USE_TLS = True MAIL_USERNAME = (’13166337919@163.com’) MAIL_PASSWORD = (’a123123’) FLASKY_MAIL_SUBJECT_PREFIX = ’[Flasky]’ FLASKY_MAIL_SENDER = ’Flasky Admin <13166337919@163.com>’ FLASKY_ADMIN = (’626825701@qq.com’) @staticmethod def init_app(app):passclass DevelopmentConfig(Config): DEBUG = True SQLALCHEMY_DATABASE_URI =’mysql+pymysql://root:123456@127.0.0.1/flask’class TestingConfig(Config): TESTING = True SQLALCHEMY_DATABASE_URI = ’mysql+pymysql://root:123456@127.0.0.1/text’class ProductionConfig(Config): SQLALCHEMY_DATABASE_URI =’mysql+pymysql://root:123456@127.0.0.1/pro’config = { ’development’: DevelopmentConfig, ’testing’: TestingConfig, ’production’: ProductionConfig, ’default’: DevelopmentConfig}
from werkzeug.security import generate_password_hash, check_password_hashfrom itsdangerous import TimedJSONWebSignatureSerializer as Serializerfrom flask import current_appfrom flask_login import UserMixinfrom . import db, login_managerclass Role(db.Model): __tablename__ = ’roles’ id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(64), unique=True) users = db.relationship(’User’, backref=’role’, lazy=’dynamic’) def __repr__(self):return ’<Role %r>’ % self.nameclass User(UserMixin, db.Model): __tablename__ = ’users’ id = db.Column(db.Integer, primary_key=True) email = db.Column(db.String(64), unique=True, index=True) username = db.Column(db.String(64), unique=True, index=True) role_id = db.Column(db.Integer, db.ForeignKey(’roles.id’)) password_hash = db.Column(db.String(128)) confirmed = db.Column(db.Boolean, default=False) @property def password(self):raise AttributeError(’password is not a readable attribute’) @password.setter def password(self, password):self.password_hash = generate_password_hash(password) def verify_password(self, password):return check_password_hash(self.password_hash, password) def generate_confirmation_token(self, expiration=3600):s = Serializer(current_app.config[’SECRET_KEY’], expiration)return s.dumps({’confirm’: self.id}) def confirm(self, token):s = Serializer(current_app.config[’SECRET_KEY’])try: data = s.loads(token)except: return Falseif data.get(’confirm’) != self.id: return Falseself.confirmed = Truedb.session.add(self)return True def __repr__(self):return ’<User %r>’ % self.username@login_manager.user_loaderdef load_user(user_id): return User.query.get(int(user_id))
问题解答
回答1:报错已经很明确了(pymysql.err.ProgrammingError) (1146, 'Table ’flask.users’ doesn’t exist')
相关文章:
1. Apache 已经把网站根目录的改为allow from all了,但是服务器还是不能访问?2. gulp-ruby-sass编译出来的文件有错3. 使用 CSS3 的 Media Query 浏览器会加载其他不同分辨率的 css 文件么4. “Webdrivers”可执行文件可能具有错误的权限请参阅https://sites.google.com/a/chromium.org/chromedriver/home5. php-_server-php_self - nginx $_SERVER[’PHP_SELF’] 得到重复路径是什么原因?6. 前端 - 类到底该如何去命名 .newsList 这种的命名难道真的不是过度语义化吗?~7. 数据挖掘 - 如何用python实现《多社交网络的影响力最大化问题分析》中的算法?8. node.js通过module.exprots返回的是promise对象而非data?9. html - 开发android的调取我web页面 他之前用的是收费的浏览器包 显示是全的换了免费的浏览器包后 显示就不全 是什么原因啊10. javascript - 给js写的盒子添加css样式,css样式没起作用。

网公网安备