这里我们来学习下python操作mysql。以下环境都是在Ubuntu 18.04当中。
flask使用SQLAlchemy来操作mysql。
安装
首先我们要安装mysql-python
pip install mysql-python
如果出现如下错误:
sh: 1: mysql_config: not found
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/tmp/pip-install-GOmOTT/mysql-python/setup.py", line 17, in <module>
metadata, options = get_config()
File "setup_posix.py", line 43, in get_config
libs = mysql_config("libs_r")
File "setup_posix.py", line 25, in mysql_config
raise EnvironmentError("%s not found" % (mysql_config.path,))
EnvironmentError: mysql_config not found
则需要安装libmysqlclient-dev
sudo apt-get install libmysqlclient-dev
然后我们再安装SQLAlchemy:
pip install flask-sqlalchemy
这样后我们就可以用python来操作mysql 了。
基本操作
我们来个最简单的基本操作:
# 文件名test.py
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SECRET_KEY'] = 'hardtoguessstring'
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://user:password@localhost:3306/testdb'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
db = SQLAlchemy(app)
class Role(db.Model):
__tablename__ = 'roles' # 数据库表名,如果不指定,则会生成默认的,最好指定
id = db.Column(db.Integer, nullable=False, primary_key=True, autoincrement=True)
name = db.Column(db.String(16), nullable=False, server_default='', unique=True)
def __repr__(self):
return '<Role %r>' % self.name
class User(db.Model):
__tablename__ =