31 lines
859 B
Python
31 lines
859 B
Python
from sqlalchemy import create_engine
|
|
from sqlalchemy.ext.declarative import declarative_base
|
|
from sqlalchemy.orm import sessionmaker
|
|
|
|
|
|
# MYSQL Configs
|
|
DB_PWD = "root:12345@localhost"
|
|
DB_NAME = "wr_index_store"
|
|
|
|
# Sqlalchemy Export
|
|
engine = create_engine("mysql+pymysql://{}/{}?charset=utf8mb4".format(DB_PWD, DB_NAME))
|
|
Session = sessionmaker(autocommit=False, autoflush=False, bind=engine)
|
|
Base = declarative_base()
|
|
|
|
|
|
def get_db():
|
|
try:
|
|
db = Session()
|
|
yield db
|
|
finally:
|
|
db.close()
|
|
|
|
|
|
def set_next_id(db: Session, num_len: int, prefix: str, model):
|
|
data = db.query(model).with_entities(model.id).order_by(model.id.desc()).first()
|
|
if data:
|
|
num = str(int({**data}.get("id").split(prefix)[-1]) + 1)
|
|
return prefix + "0" * (num_len - len(num)) + num
|
|
else:
|
|
return prefix + "0" * (num_len - 1) + "1"
|