1、安装mysql
通过yum方式安装MySQL服务器:
sudo yum install mysql-server
在安装过程中,系统可能会要求确认安装。按下Y键并按回车键继续。
安装完成后,MySQL服务器应已自动启动。可以使用以下命令查看和启动MySQL服务:
sudo systemctl status mysqld
sudo systemctl start mysqld
配置MySQL安全性
运行以下命令来加强MySQL的安全性和设置其他选项:
sudo mysql_secure_installation
按照提示操作以完成安全设置,包括设置root密码、删除匿名用户、禁止远程root登录、删除测试数据库等。
登录MySQL验证
mysql -u root -p
系统将提示您输入之前设置的root密码。输入密码后,您将进入MySQL的交互式命令行界面。
创建数据库
#创建新的登录用户:
create user newname identified by 'password';#远程登录授权
grant all privileges on *.* to 'newusername'@'%' identified by 'password' with grant option;#刷新
flush privileges;#创建数据库
create database 'databasename'
2、配置flask数据库操作
文件:app/config.py
#mysql连接信息
HOSTNAME="X.X.X.X"
PORT=3306
USERNAME="root"
PASSWORD="yourpasswd"
DATABASE="yourdatabase"
DB_URI = f"mysql+pymysql://{USERNAME}:{PASSWORD}@{HOSTNAME}:{PORT}/{DATABASE}?charset=utf8mb4"
SQLALCHEMY_DATABASE_URI = DB_URI
3、创建模型
文件:app/ext.py
#ext.py:这个文件存在的意义就是为了解决循环引用的问题
from flask_sqlalchemy import SQLAlchemydb=SQLAlchemy()
文件:app/model.py
from exts import db
class UserModel(db.Model):
__tablename__="user"
id=db.Column(db.BigInteger,primary_key=True,autoincrement=True)
username=db.Column(db.String(200),nullable=False)
password=db.Column(db.String(300),nullable=False)
email=db.Column(db.String(100),nullable=False,unique=True)
join_time=db.Column(db.DateTime,default=datetime.now)
4、flask绑定
安装python相关模块
MySQLdb:MySQLdb是用Python来操作mysql的包,因此通过pip来安装,命令如下:pip install mysql-python。
pymysql:pymysql是用Python来操作mysql的包,因此通过pip来安装,命令如下:pip3 install pymysql。如果您用的是Python 3,请安装pymysql。
SQLAlchemy:SQLAlchemy是一个数据库的ORM框架,我们在后面会用到。安装命令为:pip3 install SQLAlchemy。
flask-migrate
是基于Alembic
进行的一个封装,并集成到Flask
中,而所有的迁移操作其实都是Alembic
做的,他能跟踪模型的变化,并将变化映射到数据库中。安装命令为:pip3 installflask-migrate
。
导入相关模块
import config
from exts import db
from models import UserModelfrom flask_migrate import Migrate
绑定mysql操作
###绑定配置文件
app.config.from_object(config)db.init_app(app)
migrate=Migrate(app,db)
app.py完整文件
from flask import Flask
import config
from exts import db
from models import UserModel
from flask_migrate import Migrate
app = Flask(__name__)
###绑定配置文件
app.config.from_object(config)
db.init_app(app)
migrate=Migrate(app,db)
@app.route('/')
def index():
return 'Hello, Flask!'
if __name__ == '__main__':
app.run(debug=True,host='0.0.0.0',port=5000)
5、migrate数据库操作测试
将当前的app导入到环境变量中后,接下来就是需要初始化一个迁移文件夹:
flask db init
然后再把当前的模型添加到迁移文件中:
flask db migrate
最后再把迁移文件中对应的数据库操作,真正的映射到数据库中:
flask db upgrade
数据库中查询已映射user表,同时多了个alembic_version表,用于migrate数据迁移变更记录
后续操作中,所有涉及的表会通过migrate来新增、调整和变更,操作比较灵活方便。