flask连接MySQL数据库
安装数据库
- 安装
MySQL
sudo apt-get install mysql-server libmysqld-dev python-mysqldb
- 配置
MySQL
可以远程连接
sudo nano /etc/mysql/mysql.conf.d/mysql.cnf
# 找到并注释掉下面的内容
bind-address = 127.0.0.1
- 修改
root
密码
sudo mysqladmin -u root -p password
# 填写密码
Enter password: 我安装的这个版本安装时没有设置root密码的提示,这个随便输
New password: 填你的密码
Confirm new password:
- 开启
root
远程登录权限
sudo mysql #超级用户进入mysql
# 切换到数据库MySQL
use mysql;
# 给root授予在任意主机(%)访问任意数据库的所有权限
grant all privileges on *.* to 'root'@'%' identified by '密码' with grant option;
# 退出数据库
exit
# 重启数据库
sudo service mysql restart
flask连接
安装flask_sqlalchemy
sudo pip3 install flask_sqlalchemy
安装 Flask-MySQLdb
sudo pip3 install Flask-MySQLdb
编写代码
from flask_sqlalchemy import SQLAlchemy
import os
from flask import Flask
app = Flask(__name__)
# 需要使用Flask-MySQLdb
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://用户名:密码@IP/数据库'
# 格式 mysql://名称:密码@IP/数据库
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
# 关闭对模型修改的监控
db = SQLAlchemy(app)
# 在扩展类实例化前加载配置
class user(db.Model): # 表明将为user
id = db.Column(db.Integer, primary_key=True) # 主键
name = db.Column(db.String(20))
db.drop_all() # 删除所有表
db.create_all() # 创建所有表
如果出现OSError: [Errno 98] Address already in use
被占用
杀死进程
查看进程
netstat -tunlp
找到python3的进程
杀死
kill -9 1378