Flask 蓝图风格-MySQL项目
环境搭建
Pycharm 创建虚拟项目
Mysql 数据库文件准备
安装依赖
shell
pip install flask,pymysql,flask_sqlalchemy
新建文件目录结构如下

添加文件
python
class BaseConfig(object):
# 数据库的配置
DIALCT = "mysql"
DRITVER = "pymysql"
HOST = '127.0.0.1'
PORT = "3306"
USERNAME = "root"
PASSWORD = "root"
DBNAME = 'emp'
SQLALCHEMY_DATABASE_URI = f"{DIALCT}+{DRITVER}://{USERNAME}:{PASSWORD}@{HOST}:{PORT}/{DBNAME}?charset=utf8"
SQLALCHEMY_TRACK_MODIFICATIONS = True
from flask_sqlalchemy import SQLAlchemy
# 使用当前文件的原因, db实例它只会创建一次(创建和使用分离)
db = SQLAlchemy()
新建模型类和对应路由
emp目录下 的 model.py
python
# coding: utf-8
from extensions import db
class Emp(db.Model):
__tablename__ = 'emp'
empno = db.Column(db.Integer,primary_key=True,comment="员工编号")
ename = db.Column(db.String(60),default=None,nullable=False,comment='员工姓名')
job = db.Column(db.String(60),default=None,nullable=True,comment='工作')
mgr = db.Column(db.Integer,default=None,nullable=True,comment='上司编号')
hiredate = db.Column(db.DateTime,default=None,nullable=False,comment='入职时间')
sal = db.Column(db.Integer,default=None,nullable=False,comment='工资')
comm = db.Column(db.Integer,default=None,nullable=True,comment='奖金')
deptno = db.Column(db.Integer,default=None,nullable=False,comment='部门编号')
emp 目录下的 routes.py
python
from flask import Flask,Blueprint
from emp.model import Emp
emp_bp = Blueprint('emp',__name__)
@emp_bp.route('/get_emps')
def get_emps():
emps = Emp.query.all() # 获取所有用户
return '<br>'.join([f'{emp.empno}--{emp.ename} --{emp.job}--{emp.hiredate}' for emp in emps])
在app中注册路由蓝图
from flask import Flask
from config import BaseConfig
# 引入定义好的蓝图
from emp.routes import emp_bp
from extensions import db
app = Flask(__name__)
#添加配置文件
app.config.from_object(BaseConfig)
db.init_app(app)
# 注册蓝图
app.register_blueprint(
emp_bp,
url_prefix='/emp'
)
if __name__ == '__main__':
app.run(debug=True)
启动项目测试
python
localhost:5000/emp/get_emps