Python 连接 mysql 数据的问题请教

2018-01-18 13:43:42 +08:00
 slgz

第一个问题很奇怪的问题 我安装好了 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
>>>
2197 次点击
所在节点    程序员
21 条回复
lfzyx
2018-01-18 13:55:20 +08:00
flask 下请用 Flask-SQLAlchemy
syrupofplum
2018-01-18 13:55:42 +08:00
flask 环境用了 virtualenv 吧,看看是不是那个环境没装 mysql
update 没生效是不是没提交事务
slgz
2018-01-18 13:58:11 +08:00
@lfzyx 所以,意思是,在 flask 框架下是没办法用远程 sql 操作的吗
slgz
2018-01-18 13:59:10 +08:00
@syrupofplum 用了 virtualenv 。 但是,我在 virtualenv 环境下,去执行 hello.py 。也会报错。 update 的时候,就没开启事物呀,为啥还要提交。。
alvie
2018-01-18 14:03:05 +08:00
@slgz MySQL 连接会有个配置叫做 autocommit,如果 autocommit 设置为 False 不管用不用事务提交变更都需要执行 commit
ilovebaicai
2018-01-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
haoji
2018-01-18 14:05:01 +08:00
from flask_sqlalchemy import SQLAlchemy
slgz
2018-01-18 14:07:15 +08:00
@alvie 好像,并没有做这个配置。。排除这个问题。。
slgz
2018-01-18 14:08:41 +08:00
@ilovebaicai 我单独写了一个文件用 Flask-SQLAlchemy,app.config['SQLALCHEMY_DATABASE_URI']=mysql://username:password@hostname/database 这个是可以了。ye~
slgz
2018-01-18 14:10:28 +08:00
@haoji 对对对,就是这个问题。好像在 flask 下,必须,引用 flask_sqlalchemy import SQLAlchemy 才行。。 我刚刚用 from flask.ext.sqlalchemy import SQLAlchemy 提示我 deprecated
likuku
2018-01-18 14:19:39 +08:00
import 模块都找不到,还是先解决这个吧。
lfzyx
2018-01-18 14:22:55 +08:00
@slgz 意思是不要做复杂的事情,轮子已经有了
slgz
2018-01-18 14:45:00 +08:00
又有一个新问题, 单独的 model 文件执行没问题,就是,在 hello.py 中 form models import * 的时候就报错了~~
<img src="http://ishwy.me/wp-content/uploads/2018/01/1_JBIZOIMWU3X@ZVH.png">
@likuku
@syrupofplum
@lfzyx
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/
slgz
2018-01-18 15:05:26 +08:00
@likuku 直接 import mysql 模块 是没问题的。
likuku
2018-01-18 15:06:18 +08:00
你当前的 venv 环境下,pip list 看看有没有装好 mysql.connector
zhd173
2018-01-19 09:45:10 +08:00
第一个问题,用 pycharm 的终端 pip list 看有没有 mysql.connector 的包,或者进 preferences-project interpreter 看有没有对应的包;
zhd173
2018-01-19 09:45:48 +08:00
第二个问题就是你的 cursor 没有 commit
slgz
2018-01-19 15:02:30 +08:00
@likuku 明白了。原来是在 virtualenv 环境下,不行。。 我看 flask 教程,一直以为要在 virtualenv 环境下,才能运行 flask。。 文档没看仔细!
slgz
2018-01-19 15:03:08 +08:00
@zhd173 在 正常 python 环境下是有的。 但是,我是用 virtualenv 环境启动的,所有没有。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/423909

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX