У меня есть приложение flask, в котором пользователь загружает CSV-файл данных об учениках, и его столбцы сохраняются в базе данных Sqlite с некоторыми дополнительными столбцами. Он работает правильно, однако шаблон html не показывает обновленную базу данных, пока я не перезапущу веб-сервер.
Кто-нибудь может мне помочь, как решить эту проблему без перезагрузки сервера вручную? Или, как альтернатива, как перезапустить сервер flask, используя какой-нибудь скрипт python.
Ниже мой код:
@app.route("/pcsv", methods=['GET', 'POST'])
@login_required
def pcsv():
if current_user.is_admin == True:
conn = sqlite3.connect('portal/site.db')
c = conn.cursor()
df=pd.read_csv('portal/phd-10.csv')
c.execute('''DROP TABLE phd;''')
c.execute('''
CREATE TABLE phd (
"Application Ref. No." TEXT PRIMARY KEY UNIQUE
);''')
new_columns=set(df.columns)
new_columns.remove('Application Ref. No.')
s=list(new_columns)
for i in range(len(s)):
c.execute('''ALTER TABLE phd ADD'''+''' "'''+s[i]+'''" '''+'''TEXT''')
df.to_sql(name='phd', con=db.engine, if_exists = 'append', index=False)
c.execute('''ALTER TABLE phd ADD Validation TEXT DEFAULT "Pending"''')
c.execute('''ALTER TABLE phd ADD Comment TEXT DEFAULT "None"''')
c.execute('''ALTER TABLE phd ADD Submission TEXT DEFAULT "Pending" ''')
c.execute('''ALTER TABLE phd ADD Tutor_name TEXT DEFAULT "Not Assigned"''')
c.execute('''ALTER TABLE phd ADD Tutor2 TEXT DEFAULT "Not Assigned"''')
c.execute('''ALTER TABLE phd ADD alloc_status TEXT DEFAULT "0" ''')
c.execute('''ALTER TABLE phd ADD Application TEXT ''')
c.execute('''update phd set Application = "Application Ref. No."; ''')
conn.commit()
flash('Database successfully created', 'info')
return redirect(url_for('upload'))
else:
return render_template('error.html')