Python Flask-SQLAlchemy数据库连接配置与常见问题解决

Oliver
Oliver
发布时间:2026-10-13 | 5人浏览过
原创

本文详解Python中如何使用Flask-SQLAlchemy连接MySQL数据库。涵盖flask、MySQL-Python驱动及Flask-SQLAlchemy的安装步骤,重点解决Windows下第三方whl文件获取及终端编码导致的警告问题。提供完整的myflask.py与config.py配置代码示例,解析控制台输出的常见FSADeprecationWarning及字符串值警告,帮助开发者快速搭建稳定的数据库连接环境。

本文详细介绍在Python项目中利用Flask-SQLAlchemy库连接数据库的具体操作流程,旨在为相关开发者提供实用的参考方案。

首先需确保环境中已安装flask基础框架。

pip install flask

接着需要安装MySQL-Python驱动,这是Python操作MySQL数据库的关键组件。需要注意的是,该驱动在官方渠道中缺乏对Windows系统的直接支持,因此需通过第三方渠道获取,例如针对Python 2.7版本的whl格式文件。

pip install MySQL_python-1.2.5-cp27-none-win_amd64.whl

提示:上述提到的whl安装文件也可通过指定链接下载至本地进行手动安装:https://www.lfd.uci.edu/~gohlke/pythonlibs/。

完成驱动准备后,继续安装Flask-SQLAlchemy扩展。

pipi install Flask-SQLAlchemy

若在安装过程中遭遇编码相关报错,通常源于终端环境的编码设置不当。尝试将终端切换为git bash shell即可解决此类问题。

主程序文件myflask.py的内容如下。

#coding:utf-8
from flask import Flask
#安装 python-mysql 因为没有官方支持win版本,只有网上有whl下载
#pip install flask_sqlalchemy
from flask_sqlalchemy import SQLAlchemy
import config #config.py导入
app = Flask(__name__)
app.config.from_object(config)  #SQLALchemy会自动从配置文件读取那个固定的URI字符串
db=SQLAlchemy(app)
db.create_all()
@app.route('/')
def hello_world():
  return '你好世界'
if(__name__=='__main__'):
  app.run(debug=True) #开启debug模式,这里如果出错会直接有提示

配置文件config.py的内容如下。

#coding:utf-8
#dialect+driver://username:password@host:port/database
DIALECT='mysql'
DRIVER='mysqldb'
USERNAME='root'
PASSWORD='root'
HOST='127.0.0.1'
PORT='3306'
DATABASE='flask0'
#这个连接字符串变量名是固定的具体 参考 flask_sqlalchemy 文档 sqlalchemy会自动找到flask配置中的 这个变量
SQLALCHEMY_DATABASE_URI='{}+{}://{}:{}@{}:{}/{}?charset=utf8'.format(DIALECT,DRIVER,USERNAME,PASSWORD,HOST,PORT,DATABASE)

执行脚本后观察控制台输出,其中包含部分非关键性警告信息,可暂时忽略。

D:\Python27\python.exe D:/PythonProjects/learn0/myflask.py D:\Python27\lib\site-packages\flask_sqlalchemy\__init__.py:794: FSADeprecationWarning: SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disabled by default in the future. Set it to True or False to suppress this warning. 'SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and ' D:\Python27\lib\site-packages\sqlalchemy\engine\default.py:470: Warning: Incorrect string value: '\xD6\xD0\xB9\xFA\xB1\xEA...' for column 'VARIABLE_VALUE' at row 478 cursor.execute(statement, parameters) * Restarting with stat D:\Python27\lib\site-packages\flask_sqlalchemy\__init__.py:794: FSADeprecationWarning: SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disabled by default in the future. Set it to True or False to suppress this warning. 'SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and ' D:\Python27\lib\site-packages\sqlalchemy\engine\default.py:470: Warning: Incorrect string value: '\xD6\xD0\xB9\xFA\xB1\xEA...' for column 'VARIABLE_VALUE' at row 478 cursor.execute(statement, parameters) * Debugger is active! * Debugger PIN: 164-312-281 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit) 127.0.0.1 - - [18/Oct/2017 16:01:03] "GET / HTTP/1.1" 200 - 127.0.0.1 - - [18/Oct/2017 16:01:04] "GET / HTTP/1.1" 200 - 127.0.0.1 - - [18/Oct/2017 16:01:06] "GET / HTTP/1.1" 200 -

期望上述关于Flask框架下Python数据库连接的描述能对读者有所助益。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表