i have a flask app and python script to pull data and insert into sql. I want these two files to run at the same time. scrap_data.py will continuously pull data and insert it into sql. When the flask application is run, the data extraction file will also start running and will pull the data in the background.
This is my flask app(app.py):
from cProfile import label
from unittest import result
from flask import Flask, redirect, url_for,render_template,send_file
import mysql
from mysql import connector
app=Flask(__name__)
#mysql
connection=mysql.connector.connect(
host="localhost",
user="root",
password="12345",
database="database"
)
cursor=connection.cursor()
sql_select_Query = "SELECT * from database.barstatus"
cursor = connection.cursor()
cursor.execute(sql_select_Query)
# get all records
records = cursor.fetchall()
cursor.execute("SELECT * FROM database.barstatus ORDER BY time DESC")
items=cursor.fetchall()
@app.route("/")
def home():
return render_template("index.html", items=items)
@app.route("/grafik")
def graph():
labels=[row[0] for row in records]
values=[row[1] for row in records]
return render_template("graph.html",labels=labels,values=values)
if __name__=="__main__":
app.run()
And my data extraction file(scrap_data.py):
import time
import mysql
from mysql import connector
#----------------------------Database Bağlantısı-------------------------
localtime = time.localtime()
values = [0]
previous_value = ""
status=""
#-------------------------Veri Çekme İşlemleri--------------------------------------
def read_input_value(node_id, previous_value):
client_node = client.get_node(node_id) # get node
client_node_value = client_node.get_value() # read node value
result = time.strftime("%H:%M:%S")
barValue = str(client_node_value)
if barValue != previous_value:
print(result + " : " + barValue)
#mysql
connection=mysql.connector.connect(
host="localhost",
user="root",
password="12345",
database="database"
)
cursor=connection.cursor()
sql="INSERT INTO barstatus(time,value,status) VALUES(%s,%s,%s)"
sqlValues=(result,barValue,status)
cursor.execute(sql,sqlValues)
try:
connection.commit()
except mysql.connector.Error as err:
print("Hata: ",err)
finally:
connection.close()
return barValue
else:
return previous_value