首先,我新建了一个名为test_db的数据库
然后在pycharm中新建一个python文件连接该库,并建一个名为User_table的表
from flask_sqlalchemy import SQLAlchemy
from flask import Flask
import pymysql
app = Flask(__name__)
# app.config["SQLALCHEMY_DATABASE_URI"] = 'mysql+pymysql://用户名:密码@127.0.0.1:3306/数据库名'
# # app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///"+"数据库的存放地址"
app.config["SQLALCHEMY_DATABASE_URI"] = 'mysql+pymysql://root:123456@127.0.0.1:3306/test_db'
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = True
# app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True
app.config["SECRET_KEY"] = "123456asd"
# 实例化数据库
db = SQLAlchemy(app)
# 用户表
class User_table(db.Model):
__tablename__ = "user_table"
id = db.Column(db.Integer, primary_key = True)
username = db.Column(db.String(16), nullable=False)
userphone = db.Column(db.String(11), nullable=False)
password = db.Column(db.String(16), nullable=False)
if __name__ == '__main__':
db.create_all()
# db.drop_all()
新建两个python文件tx.py和rx.py
rx.py内容:
import time
from db_test import db, User_table
j = 0
while True:
# 每5秒读取一次数据
time.sleep(5)
j += 1
getmsg = User_table.query.all()
for i in getmsg:
# print(i)
print("第" + str(j) + "次:" + i.username)
print("-------------")
tx.py内容:
from db_test import db, User_table
import time
a = 0
while True:
# 每8秒写入一次数据
time.sleep(8)
a += 1
ss = User_table(username="李四" + str(a), userphone=18045982650, password=123456789)
print("第" + str(a) + "写入:" + "李四" + str(a))
db.session.add(ss)
db.session.commit()
同时运行结果:
数据库中原本有一条张三;
tx.py和rx.py同时运行的时候,tx新写入数据库的数据无法被rx读到,只有重新运行rx时才能读到最新的数据,怎样才能解决两个程序同时运行,rx还能读取到数据库中所有数据