flask SQLAlchemy 警告问题

本文介绍了一种常见的Flask应用中SQLAlchemy警告的解决方案:未正确配置数据库URI。通过调整代码顺序,将数据库配置信息置于创建数据库对象前,可以避免默认使用内存数据库,确保应用正确连接到预期的MySQL数据库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 出现如下警告:

UserWarning: Neither SQLALCHEMY_DATABASE_URI nor SQLALCHEMY_BINDS is set. Defaulting SQLALCHEMY_DATABASE_URI to "sqlite:///:memory:".

解决办法:

应该把数据库的配置信息放到创建操作数据库对象之前

例如:

app = Flask(__name__)

app.config['SQLALCHEMY_DATABASE_URI'] = "mysql+pymysql://root:123456@127.0.0.1:3306/us_flask"
db = SQLAlchemy(app)

 

ARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. * Running on http://127.0.0.1:5000 Press CTRL+C to quit * Restarting with stat * Debugger is active! * Debugger PIN: 120-624-777 This runs only once on the first request! 127.0.0.1 - - [10/Jun/2025 16:34:49] "GET / HTTP/1.1" 200 - 127.0.0.1 - - [10/Jun/2025 16:34:49] "GET /static/css/style.css HTTP/1.1" 404 - 127.0.0.1 - - [10/Jun/2025 16:34:49] "GET /static/js/main.js HTTP/1.1" 404 - D:\PythonProject\app.py:53: LegacyAPIWarning: The Query.get() method is considered legacy as of the 1.x series of SQLAlchemy and becomes a legacy construct in 2.0. The method is now available as Session.get() (deprecated since: 2.0) (Background on SQLAlchemy 2.0 at: https://sqlalche.me/e/b8d9) department = Department.query.get(department_id) 127.0.0.1 - - [10/Jun/2025 16:34:51] "GET /doctor_list?department=1&date=2025-06-10 HTTP/1.1" 500 - Traceback (most recent call last): File "D:\PythonProject\.venv\Lib\site-packages\flask\app.py", line 1536, in __call__ return self.wsgi_app(environ, start_response) ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\PythonProject\.venv\Lib\site-packages\flask\app.py", line 1514, in wsgi_app response = self.handle_exception(e) File "D:\PythonProject\.venv\Lib\site-packages\flask\app.py", line 1511, in wsgi_app response = self.full_dispatch_request() File "D:\PythonProject\.venv\Lib\site-packages\flask\app.py", line 919, in full_dispatch_request rv = self.handle_user_exception(e) File "D:\PythonProject\.venv\Lib\site-packages\flask\app.py", line 917, in full_dispatch_request rv = self.dispatch_request() File "D:\PythonProject\.venv\Lib\site-packages\flask\app.py", line 902, in dispatch_request return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ File "D:\PythonProject\app.py", line 57, in doctor_list flash('指定的科室不存在', 'warning')如何修改
06-11
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值