V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
slgz
V2EX  ›  程序员

Python 连接 mysql 数据的问题请教

  •  
  •   slgz · Jan 18, 2018 · 2724 views
    This topic created in 3022 days ago, the information mentioned may be changed or developed.

    第一个问题很奇怪的问题 我安装好了 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
    >>>
    
    21 replies    2018-01-19 17:09:11 +08:00
    lfzyx
        1
    lfzyx  
       Jan 18, 2018   ❤️ 1
    flask 下请用 Flask-SQLAlchemy
    syrupofplum
        2
    syrupofplum  
       Jan 18, 2018
    flask 环境用了 virtualenv 吧,看看是不是那个环境没装 mysql
    update 没生效是不是没提交事务
    slgz
        3
    slgz  
    OP
       Jan 18, 2018
    @lfzyx 所以,意思是,在 flask 框架下是没办法用远程 sql 操作的吗
    slgz
        4
    slgz  
    OP
       Jan 18, 2018
    @syrupofplum 用了 virtualenv 。 但是,我在 virtualenv 环境下,去执行 hello.py 。也会报错。 update 的时候,就没开启事物呀,为啥还要提交。。
    alvie
        5
    alvie  
       Jan 18, 2018
    @slgz MySQL 连接会有个配置叫做 autocommit,如果 autocommit 设置为 False 不管用不用事务提交变更都需要执行 commit
    ilovebaicai
        6
    ilovebaicai  
       Jan 18, 2018
    使用 MySQLdb,db = MySQLdb.connect("localhost","testuser","test123","TESTDB" )试试,
    或者使用 Flask-SQLAlchemy,app.config['SQLALCHEMY_DATABASE_URI']=mysql://username:password@hostname/database
    haoji
        7
    haoji  
       Jan 18, 2018
    from flask_sqlalchemy import SQLAlchemy
    slgz
        8
    slgz  
    OP
       Jan 18, 2018
    @alvie 好像,并没有做这个配置。。排除这个问题。。
    slgz
        9
    slgz  
    OP
       Jan 18, 2018
    @ilovebaicai 我单独写了一个文件用 Flask-SQLAlchemy,app.config['SQLALCHEMY_DATABASE_URI']=mysql://username:password@hostname/database 这个是可以了。ye~
    slgz
        10
    slgz  
    OP
       Jan 18, 2018
    @haoji 对对对,就是这个问题。好像在 flask 下,必须,引用 flask_sqlalchemy import SQLAlchemy 才行。。 我刚刚用 from flask.ext.sqlalchemy import SQLAlchemy 提示我 deprecated
    likuku
        11
    likuku  
       Jan 18, 2018
    import 模块都找不到,还是先解决这个吧。
    lfzyx
        12
    lfzyx  
       Jan 18, 2018
    @slgz 意思是不要做复杂的事情,轮子已经有了
    slgz
        13
    slgz  
    OP
       Jan 18, 2018
    又有一个新问题, 单独的 model 文件执行没问题,就是,在 hello.py 中 form models import * 的时候就报错了~~
    <img src="http://ishwy.me/wp-content/uploads/2018/01/[email protected]">
    @likuku
    @syrupofplum
    @lfzyx
    likuku
        14
    likuku  
       Jan 18, 2018
    @slgz

    你在这个位置,python 交互模式下,直接 import mysql 模块呢?

    SQLAlchemy 就先不要管了。


    最近也在折腾 Flask-SQLAlchemy 的确很烦,我是严格按 "Flask 之旅" 里的范例来作的,没这么多毛病:
    https://www.gitbook.com/book/wizardforcel/explore-flask/
    slgz
        15
    slgz  
    OP
       Jan 18, 2018
    @likuku 直接 import mysql 模块 是没问题的。
    likuku
        16
    likuku  
       Jan 18, 2018
    你当前的 venv 环境下,pip list 看看有没有装好 mysql.connector
    zhd173
        17
    zhd173  
       Jan 19, 2018
    第一个问题,用 pycharm 的终端 pip list 看有没有 mysql.connector 的包,或者进 preferences-project interpreter 看有没有对应的包;
    zhd173
        18
    zhd173  
       Jan 19, 2018
    第二个问题就是你的 cursor 没有 commit
    slgz
        19
    slgz  
    OP
       Jan 19, 2018
    @likuku 明白了。原来是在 virtualenv 环境下,不行。。 我看 flask 教程,一直以为要在 virtualenv 环境下,才能运行 flask。。 文档没看仔细!
    slgz
        20
    slgz  
    OP
       Jan 19, 2018
    @zhd173 在 正常 python 环境下是有的。 但是,我是用 virtualenv 环境启动的,所有没有。
    likuku
        21
    likuku  
       Jan 19, 2018
    @slgz 你在 virtualenv 再装 mysql 连接器就行了。虚拟环境就当是一个类似 docker 的 平行宇宙 /本地虚拟机。

    推荐看这一部分:
    环境 | Flask 之旅 : https://spacewander.github.io/explore-flask-zh/3-environment.html

    所有安装测试开发都在 virtualenv 下就行了,最好是每个项目都有独立的 virtualenv,
    干净,又可以轻易管理其依赖,也便于发布。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1101 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 44ms · UTC 18:22 · PVG 02:22 · LAX 11:22 · JFK 14:22
    ♥ Do have faith in what you're doing.