关于pymysql与SQL alchemy连接失败的解决方案

寿子轩
2023-12-01
python3.5不支持MySQLdb的数据库驱动,pymysql可以完美支持。

而连接过程中我遇到的一个比较坑的问题,想和大家分享一下,不要笑~

首先我新建个文件 config.py作为配置文件,数据库部分就不多说了,直接上代码
DEBUG = True
SQLALCHEMY_TRACK_MODIFICATIONS = False

DIALECT = 'mysql'
DRIVER = 'pymysql'
USERNAME = 'root'
PASSWORD = 'root'
HOST = '127.0.0.1'
PORT = '3306'
DATABASE = 'db_demo1'

SQLALCHEMY_DATABASE_URI = "{}+{}://{}:{}@{}:{}/{}?charset=utf8".format(DIALECT, DRIVER, USERNAME, PASSWORD, HOST, PORT, DATABASE)
 下面附上主入口文件
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import config

app = Flask(__name__)
app.config.from_object(config)
db = SQLAlchemy(app)
db.create_all()

@app.route('/')
def index():
    return 'index'

if __name__ == '__main__':
    app.run()
在确保MySQL服务(控制面板-管理工具-服务-mysql)运行起来以后,运行主入口程序,然后bug来了
* Restarting with stat
 * Debugger is active!
 * Debugger PIN: 181-739-912
Exception in thread Thread-1:

 UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc9 in position 0: invalid continuation byte

发生编码错误??我编辑的编码是utf8的,py3也不存在py2的繁杂的设置编码的问题,百度了之后也找不到。

后来在与某位大佬交流过才知道,问题出在这里

项目路径是否有中文
python路径或虚拟环境路径是否有中文
计算机名是否有中文

然后突然想起来,前几天手欠改了计算机名称,然后就瘫在寝室一下午。
以后再也不手欠了

 类似资料: