flask mysql 中间价_mysql+flask _sqlalchemy报错

跟着书本FlaskWeb开发学到第七章调整项目结构的时候,使用flask_sqlalchemy 出现UserWarning: Neither SQLALCHEMY_DATABASE_URI nor SQLALCHEMY_BINDS is set 的警告

这是config.py代码

from flask import Flask

from flask_sqlalchemy import SQLAlchemy

import os

app = Flask(__name__)

basedir = os.path.abspath(os.path.dirname(__file__))

class Config:

app.config['SECRET_KEY'] = 'hard to guess string'

app.config['MAIL_DEFAULT_SENDER'] = '123@qq.com'  # 填邮箱,默认发送者

app.config['SECRET_KEY'] = 'hard to guess string'

app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:430202@127.0.0.1:3306/test1'

app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True

app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True

app.config['FLASKY_ADMIN'] = '123@123.cn'

@staticmethod

def init_app(app):

pass

class DevelopmentConfig(Config):

DEBUG = True

app.config['MAIL_SERVER'] = 'smtp.qq.com'

app.config['MAIL_PORT'] = 587

app.config['MAIL_USE_TLS'] = True

app.config['MAIL_USERNAME'] = '123@qq.com'

app.config['MAIL_PASSWORD'] = 'ddjogvrpawyebcdi'

app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:430202@127.0.0.1:3306/test1'

app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True

app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True

class TestingConfig(Config):

TESTING = True

app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:430202@127.0.0.1:3306/test1'

class ProductionConfig(Config):

app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:430202@127.0.0.1:3306/test1'

config = {

'development': DevelopmentConfig,

'testing': TestingConfig,

'production': ProductionConfig,

'default': DevelopmentConfig

}

这是app__init__.py代码

from flask import Flask, render_template

from flask_bootstrap import Bootstrap

from flask_mail import Mail

from flask_moment import Moment

from flask_sqlalchemy import SQLAlchemy

from config import config

from flask_login import LoginManager

bootstrap = Bootstrap()

mail = Mail()

moment = Moment()

db = SQLAlchemy()

login_manager=LoginManager()

login_manager.session_protection='strong'

login_manager.login_view='auth.login'

def create_app(config_name):

app = Flask(__name__)

app.config.from_object(config[config_name])

config[config_name].init_app(app)

bootstrap.init_app(app)

mail.init_app(app)

moment.init_app(app)

db.init_app(app)

login_manager.init_app(app)

from .main import main as main_blueprint

app.register_blueprint(main_blueprint)

from .auth import auth as auth_blueprint

app.register_blueprint(auth_blueprint,url_prefix='/auth')

# 附加路由和自定义的错误页面

return app

这是test文件

import unittest

from flask import current_app

from app import create_app, db

class BasicsTestCase(unittest.TestCase):

def setUp(self):

self.app = create_app('testing')

self.app_context = self.app.app_context()

self.app_context.push()

db.create_all()

def tearDown(self):

db.session.remove()

db.drop_all()

self.app_context.pop()

def test_app_exists(self):

self.assertFalse(current_app is None)

def test_app_is_testing(self):

self.assertTrue(current_app.config['TESTING'])

运行python manage.py test的时候报错信息如下:

C:UsersDELLPycharmProjectsbookvenvlibsite-packagesflask_sqlalchemy__init__.py:774: UserWarning: Neither SQLALCHEMY_DATABASE_URI nor SQLALCHEMY_BINDS is set. Defaulting SQLALCHEMY_DATABASE_URI to “sqlite:///:memory:”.

‘Neither SQLALCHEMY_DATABASE_URI nor SQLALCHEMY_BINDS is set. ‘

test_app_exists (test_basic.BasicsTestCase) … C:UsersDELLPycharmProjectsbookvenvlibsite-packagesflask_sqlalchemy__init__.py:774: UserWarning: Neither SQLALCHEMY_DATABASE_URI nor SQLALCHEMY_BINDS is set. Defaulting SQLALCHEMY_DATABASE_URI to “sqlite:///:memory:”.

‘Neither SQLALCHEMY_DATABASE_URI nor SQLALCHEMY_BINDS is set. ‘

目前把网上有类似问题的解决方案都尝试过了,还是没有解决,真的不知道问题出在哪,有人帮忙看一下吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值