我在 model.py 文件中使用 db.Model 创建了一个表示例,如下所示:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app=Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:root@localhost/dbname'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS']=False
db=SQLAlchemy(app)
class dbconfig(db.Model):
id = db.Column(db.Integer, primary_key=True)
host = db.Column(db.String(200), unique=False)
password = db.Column(db.String(50), unique=False)
user = db.Column(db.String(50), unique=False)
dbname = db.Column(db.String(25), unique=False)
drivername = db.Column(db.String(25), unique=False)
charset = db.Column(db.String(20), unique=False)
cursorclass = db.Column(db.String(20), unique=False)
def __init__(self,host,password,user,dbname,drivername,charset,cursorclass):
self.host=host
self.password=password
self.user=user
self.dbname=dbname
self.drivername=drivername
self.charset=charset
self.cursorclass=cursorclass
def __repr__(self):
return '%s,%s,%s,%s,%s' % (self.host,self.user,self.password,self.dbname,self.drivername)
farmautomation = dbconfig('x', 'y','z','xyz','pymysql','utf8mb4','null')
现在我正在创建表并插入以下行的记录:
db.create_all()
db.session.add(farmautomation)
db.session.commit()
dbconfig.query.all()
当我多次运行 model.py 时,记录会插入我运行文件的次数,但是即使文件被多次调用,我也需要插入一次记录,请告诉我如何处理
最佳答案
您可以简单地计算没有行:
db.create_all()
rows = dbconfig.query.count()
if rows == 0:
farmautomation = dbconfig('x', 'y', 'z', 'xyz', 'pymysql', 'utf8mb4', 'null')
session.add(farmautomation)
session.commit()
如果您需要更具体,您当然也可以向 count
查询添加过滤器。
此外,我强烈建议使用配置文件来保存您的数据库凭据。
关于python - 记录插入的次数与运行模型文件的次数一样多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57668521/