四 后端:Flask+数据库Sqlite
环境配置
pip install flask-sqlalchemy -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install SQLAlchemy-serializer -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install flask_cors -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install flask-migrate -i https://pypi.tuna.tsinghua.edu.cn/simple
restful.py
from flask import jsonify
# 状态码
class HttpCode(object):
# 响应正常
ok = 200
# 客户端参数错误
paramserror = 400
# 服务器错误
servererror = 500
# 字典转字符串
def _restful_result(code, message, data):
return jsonify({"message": message or "", "data": data or {}, "code": code})
# 返回ok及结果数据
def ok(message=None, data=None):
return _restful_result(code=HttpCode.ok, message=message, data=data)
# 客户端错误
def params_error(message="参数错误!"):
return _restful_result(code=HttpCode.paramserror, message=message, data=None)
# 服务器错误
def server_error(message="服务器开小差啦!"):
return _restful_result(code=HttpCode.servererror, message=message or '服务器内部错误', data=None)
flask_app.py
from flask import Flask, request,render_template
from exts import db
from flask_cors import CORS
import config
from flask_migrate import Migrate
# 发生关联
from models import ModelInfo
# flask实例
app = Flask(__name__,static_folder='./dist', template_folder = "./dist",static_url_path="" )
# 导入配置文件(数据库配置参数)
app.config.from_object(config)
# 数据库绑定app
db.init_app(app)
# 将模型映射到数据库
migrate = Migrate(app,db)
# 跨域访问
CORS(app,resources=r'/*')
@app.route("/ai/api/add",methods=['GET','POST'])
def addModel():
pass
@app.route("/ai/api/getAiModelList",methods=['GET','POST'])
def getAiModelList():
pass
@app.route("/ai/api/delete",methods=['GET','POST'])
def deleteModel():
id = request.form.get("id")
return "ok"
if __name__ == '__main__':
app.run()
exts.py
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
config.py
# 数据库配置
SQLALCHEMY_DATABASE_URI = "sqlite:///" + r"D:\workplace\PycharmProjects\TestFlaskVue\myDataBase.db" # 数据库存放位置
SQLALCHEMY_TRACK_MODIFICATIONS = False
SECRET_KEY = "jumy"
models.py
from exts import db
from sqlalchemy_serializer import SerializerMixin
class ModelInfo(db.Model, SerializerMixin):
__tablename__ = "modelInfo"
id = db.Column(db.Integer, primary_key=True) # 主键
algoCategory = db.Column(db.Text)
task = db.Column(db.Text)
imgsz = db.Column(db.Text)
device = db.Column(db.Text)
modelPath = db.Column(db.Text)
initModelFlag = db.Column(db.Text)
def __str__(self):
return "<ModelInfo(algoCategory:%s)>" %(self.algoCategory)
# 设置环境变量FLASK_APP为当前主函数名称
set FLASK_APP=flask_app.py
# 初始化迁移仓库
flask db init
# 生成迁移脚本
flask db migrate
# 执行脚本中的upgrade操作,真正完成数据的产生
flask db upgrade
flask db init
# 生成迁移脚本
flask db migrate
# 执行脚本中的upgrade操作,真正完成数据的产生
flask db upgrade
使用Navicat 进行查看