Python3中Flask使用flask_sqlalchemy的的问题以及解决
2017-10-17 21:30
561 查看
(一)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不能默认什么都没有, 得设置其为
True或者
False, 所以就去
/flask/local/lib/python2.7/site-packages/flask_sqlalchemy/__init__.py这个文件中进行更改, 提示给的839行,在前面几行的位置有这样的
setdefault, 把None改为True;:
...833 track_modifications = app.config.setdefault(834 'SQLALCHEMY_TRACK_MODIFICATIONS', True #这里,一开始是None需要改变为True or Flase835 )...(三)Python3与Python2中连接也是有区别的这里不详讲参考连接为点击打开链接大概就是如下:
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:root@127.0.0.1/tushare?charset=utf8' #这是Python2的但是在Python3进行了改变:正确的连接应该是这样
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:root@127.0.0.1/tushare?charset=utf8' #这是Python3的为什么会这样我也不知道,到时看看源码再说如果不这样连接会怎么样,恭喜你会爆出一堆你不知道是什么鬼的错误
return __import__('MySQLdb')ModuleNotFoundError: No module named 'MySQLdb'解决方法就是上面的Python2请无视Flask-SQLAlchemy的中文文档连接Flask-SQLAlchem
相关文章推荐
- Python的Flask框架中SQLAlchemy使用时的乱码问题解决
- Python的Flask框架中SQLAlchemy使用时的乱码问题解决
- 取从textarea中存到MYSQL的数据以原格式显示问题以及解决MySQL日期处理和标签的使用
- python2.6使用mysql包出现的一些问题以及解决办法
- 完美解决无法使用ctrl+shift以及ctrl+space切换输入法的问题
- 打开新窗口的window.open使用方法以及最大化等问题解决方法汇总
- 仿MFC实现c++按名动态创建对象之续(瘦身以及解决其在dll中使用的问题)
- Hadoop使用常见问题以及解决方法
- QT中使用槽函数来关闭窗口,导致内存泄露的问题以及解决办法
- 使用ArcCatalog删除某个字段的问题以及解决方法
- Hadoop使用常见问题以及解决方法
- 使用java mail 包收发中文邮件的编码,解码问题以及解决方法
- 使用JSTL中的一个莫名其妙的问题以及解决
- Hadoop使用常见问题以及解决方法
- Jetty 使用 以及HTML 和Js代码无法保存问题解决
- Hadoop使用常见问题以及解决方法
- min-height 属性的使用以及IE6.0不兼容问题的解决办法
- 同时安装ASA10以及ASA11两个数据库导致不能使用SQLSERVER2005 management studio的问题解决
- android客户端通过Get方式提交参数给服务器,使用URL和HttpURLConnection实现,以及乱码问题解决
- 完美解决无法使用ctrl+shift以及ctrl+space切换输入法的问题