【Flask开发实战】安装mysql数据库与配置连接

发布于:2024-03-30 ⋅ 阅读:(50) ⋅ 点赞:(0)

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 SQLAlchemy

db=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 install flask-migrate

 导入相关模块

import config
from exts import db
from models import UserModel

from 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来新增、调整和变更,操作比较灵活方便。 


网站公告

今日签到

点亮在社区的每一天
去签到