第一个问题很奇怪的问题 我安装好了 mysql.connector 之后,在 cmd 下执行和单独一个文件执行,都没有报错。
但是在 flask 框架下,import mysql.connector 就会报错 ImportError: No module named mysql.connector。 代码和报错如下。
求各位大佬解。。研究两天了。。
===============================华丽分割线=================================
第二个问题,就是,我在原生的上面操作。 通过,cursor.rowcount 返回产生或影响的行数。来判断是 1。但是,实际上在数据库中并没有更新到。
>>> cursor.execute('update user set name = "1111" WHERE id="1" ') >>> print cursor.rowcount 1 >>>
![]() | 1 lfzyx 2018-01-18 13:55:20 +08:00 ![]() flask 下请用 Flask-SQLAlchemy |
![]() | 2 syrupofplum 2018-01-18 13:55:42 +08:00 flask 环境用了 virtualenv 吧,看看是不是那个环境没装 mysql update 没生效是不是没提交事务 |
![]() | 4 slgz OP @syrupofplum 用了 virtualenv 。 但是,我在 virtualenv 环境下,去执行 hello.py 。也会报错。 update 的时候,就没开启事物呀,为啥还要提交。。 |
![]() | 5 alvie 2018-01-18 14:03:05 +08:00 @slgz MySQL 连接会有个配置叫做 autocommit,如果 autocommit 设置为 False 不管用不用事务提交变更都需要执行 commit |
6 ilovebaicai 2018-1-18 14:03:11 +08:00 使用 MySQLdb,db = MySQLdb.connect("localhost","testuser","test123","TESTDB" )试试, 或者使用 Flask-SQLAlchemy,app.config['SQLALCHEMY_DATABASE_URI']=mysql://username:password@hostname/database |
![]() | 7 haoji 2018-01-18 14:05:01 +08:00 from flask_sqlalchemy import SQLAlchemy |
![]() | 9 slgz OP @ilovebaicai 我单独写了一个文件用 Flask-SQLAlchemy,app.config['SQLALCHEMY_DATABASE_URI']=mysql://username:password@hostname/database 这个是可以了。ye~ |
![]() | 10 slgz OP @haoji 对对对,就是这个问题。好像在 flask 下,必须,引用 flask_sqlalchemy import SQLAlchemy 才行。。 我刚刚用 from flask.ext.sqlalchemy import SQLAlchemy 提示我 deprecated |
![]() | 11 likuku 2018-01-18 14:19:39 +08:00 import 模块都找不到,还是先解决这个吧。 |
![]() | 13 slgz OP 又有一个新问题, 单独的 model 文件执行没问题,就是,在 hello.py 中 form models import * 的时候就报错了~~ <img src="http://ishwy.me/wp-content/uploads/2018/01/[email protected]"> @likuku @syrupofplum @lfzyx |
![]() | 14 likuku 2018-01-18 15:02:36 +08:00 @slgz 你在这个位置,python 交互模式下,直接 import mysql 模块呢? SQLAlchemy 就先不要管了。 最近也在折腾 Flask-SQLAlchemy 的确很烦,我是严格按 "Flask 之旅" 里的范例来作的,没这么多毛病: https://www.gitbook.com/book/wizardforcel/explore-flask/ |
![]() | 16 likuku 2018-01-18 15:06:18 +08:00 你当前的 venv 环境下,pip list 看看有没有装好 mysql.connector |
17 zhd173 2018-01-19 09:45:10 +08:00 第一个问题,用 pycharm 的终端 pip list 看有没有 mysql.connector 的包,或者进 preferences-project interpreter 看有没有对应的包; |
18 zhd173 2018-01-19 09:45:48 +08:00 第二个问题就是你的 cursor 没有 commit |
![]() | 19 slgz OP @likuku 明白了。原来是在 virtualenv 环境下,不行。。 我看 flask 教程,一直以为要在 virtualenv 环境下,才能运行 flask。。 文档没看仔细! |
![]() | 21 likuku 2018-01-19 17:09:11 +08:00 @slgz 你在 virtualenv 再装 mysql 连接器就行了。虚拟环境就当是一个类似 docker 的 平行宇宙 /本地虚拟机。 推荐看这一部分: 环境 | Flask 之旅 : https://spacewander.github.io/explore-flask-zh/3-environment.html 所有安装测试开发都在 virtualenv 下就行了,最好是每个项目都有独立的 virtualenv, 干净,又可以轻易管理其依赖,也便于发布。 |