Python3中Flask使用flask_sqlalchemy的的问题以及解决

本文介绍了Python3中使用Flask-SQLAlchemy时遇到的模块导入变化和SQLALCHEMY_TRACK_MODIFICATIONS配置问题。在Python3中,推荐使用`from flask_sqlalchemy import SQLAlchemy`而不是`from flask.ext.sqlalchemy import SQLAlchemy`,并且需要设置SQLALCHEMY_TRACK_MODIFICATIONS参数以避免未来潜在的不支持情况。
摘要由CSDN通过智能技术生成

(一)

Python3在flask_sqlalchemy中相比改动了一些比如模块的导入。

在Python2中应该是 from flask.ext.sqlalchemy impot SQLAlchemy

虽然在Python3中这样使用其实不会错但是Python3中不赞成这样使用可能在未来会取消flask.ext.sqlalchemy这是个趋势

在Python3中建议使用from flask_sqlalchemy import SQLAlchemy


(二)

第一次使用这个模块需要对源码进行改变及设置:

设置SQLALCHEMY_TRACK_MODIFICATIONS 为True或False

/home/air/Desktop/microblog/flask/local/lib/python2.7/site-packages/flask_sqlalchemy/__init__.py:839: 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 '
提示我们需要设定参数‘True’ 或者 ‘’Flase‘
是说 SQLALCHEMY_TRACK_MODIFICATIONS 不能默认什么都没有, 
得设置其为 
  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,以下是一个完整的 Flask 应用程序,使用 Flask-SQLAlchemy 连接 MySQL 数据库的示例: 首先,安装必要的依赖: ``` pip install flask flask_sqlalchemy pymysql ``` 然后,在您的 Flask 应用程序文件,导入必要的模块: ```python from flask import Flask from flask_sqlalchemy import SQLAlchemy import pymysql ``` 接下来,创建一个 Flask 应用程序实例并配置 MySQL 数据库连接: ```python app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://<username>:<password>@<hostname>/<dbname>' app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False db = SQLAlchemy(app) ``` 在上面的代码,您需要将 `<username>`, `<password>`, `<hostname>` 和 `<dbname>` 替换为您的 MySQL 数据库的实际值。 然后,创建一个模型类来表示您的数据库表: ```python class User(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(50)) email = db.Column(db.String(120), unique=True) def __repr__(self): return '<User %r>' % self.name ``` 最后,启动 Flask 应用程序并进行测试: ```python if __name__ == '__main__': app.run(debug=True) ``` 完整的示例代码如下: ```python from flask import Flask from flask_sqlalchemy import SQLAlchemy import pymysql app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://<username>:<password>@<hostname>/<dbname>' app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False db = SQLAlchemy(app) class User(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(50)) email = db.Column(db.String(120), unique=True) def __repr__(self): return '<User %r>' % self.name if __name__ == '__main__': app.run(debug=True) ``` 注意,您需要先在 MySQL 数据库创建一个名为 `<dbname>` 的数据库。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值