如果是安装的是mysql-python,后import MySQLdb报错. 那么建议不要使用mysql-python了. 在Python3.6版本以后也没有支持.
我个人使用的是第三方库pymysql
,在终端中输入以下代码安装
sudo pip install pymysql
安装后, 如果使用的是flask_sqlalchemy
注意更改驱动的名字为pymysql
SQLALCHEMY_DATABASE_URI = '[数据库名]+[数据库中间件(驱动)]://[用户名]:
[password]@[主机IP地址]:[端口号]/[数据库名字]?charset=utf8'
SQLALCHEMY_TRACK_MODIFICATIONS = True
以下是一个用于连接数据库的配置文件实例
# -*- coding:utf-8 -*-
# config.py
DIALECT = 'mysql'
DRIVER = 'pymysql'
USERNAME = 'root'
PASSWORD = 'root'
# HOST = '127.0.0.1' # 自己电脑的ip 或者localhost
HOST = 'localhost' # 自己电脑的ip
PORT = '3306' # MySQL默认的端口号
DATABASE = 'db_demo1'
# SQLALCHEMY_DATABASE_URI = '[数据库名]+[数据库中间件(驱动)]://[用户名]:[password]@[主机IP地址]:[端口号]/[数据库名字]?charset=utf8'
# SQLALCHEMY_TRACK_MODIFICATIONS = True
# 数据库连接必须用这个名字 SQLALCHEMY_DATABASE_URI
SQLALCHEMY_DATABASE_URI = "{}+{}://{}:{}@{}:{}/{}?charset=utf8".format(DIALECT, DRIVER, USERNAME, PASSWORD, HOST, PORT, DATABASE)
# -*- coding:utf-8 -*-
# db_test.py
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()