может быть, вы поможете мне со следующим кодом / проблемой. Я хочу написать небольшой инструмент с flask и sqlite для записи моего рабочего времени. Кажется, у меня проблемы с подключением к базе данных, хотя раньше я мог подключаться к базе данных. Это код:
from flask import Flask, render_template, url_for, request, redirect
from flask_sqlalchemy import SQLAlchemy
import datetime
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///time-clock.db'
db = SQLAlchemy(app)
class Project_Work(db.Model):
id = db.Column(db.Integer, primary_key=True)
project = db.Column(db.String(200), unique=False, nullable=False)
content = db.Column(db.String(200), unique=False, nullable=False)
date_start = db.Column(db.DateTime, unique=False, nullable=False)
date_end = db.Column(db.DateTime, unique=False, nullable=False)
time = db.Column(db.Float, unique=False, nullable=False)
def __repr__(self):
return '<Task %r>' % self.id
@app.route('/', methods=['POST', 'GET'])
def index():
tasks = Project_Work.query
return render_template('index.html', tasks=tasks)
@app.route('/form', methods=['POST', 'GET'])
def form():
if request.method == 'POST':
project = request.form['project']
content = request.form['content']
start = datetime.datetime.strptime(request.form['date_end'], '%Y-%m-%d %H:%M:%S')
end = datetime.datetime.strptime(request.form['date_end'], '%Y-%m-%d %H:%M:%S')
new_task = Project_Work(project=project, content=content, date_start = start, date_end = end, time = 8)
try:
db.session.add(new_task)
db.session.commit()
return redirect('/')
except:
return 'There was an issue adding your task'
else:
tasks = Project_Work.query
return render_template('form.html', tasks=tasks)
@app.route('/delete/<int:id>')
def delete(id):
task_to_delete = Project_Work.query.get_or_404(id)
try:
db.session.delete(task_to_delete)
db.session.commit()
return redirect('/')
except:
return 'There was a problem deleting that task'
#Following function updates existings entries in the database by using the entry-id.
@app.route('/update/<int:id>', methods=['GET', 'POST'])
def update(id):
task = Project_Work.query.get_or_404(id)
if request.method == 'POST':
task.content = request.form['content']
try:
db.session.commit()
return redirect('/')
except:
return 'There was an issue updating your task'
else:
return render_template('update.html', task=task)
if __name__ == "__main__":
app.run(debug=True)
Мне удалось создать базу данных с терминала python. Когда я вручную помещаю данные в базу данных, я могу читать все из базы данных. Если я попытаюсь записать данные из формы в базу данных, инструмент просто перенаправит на главную страницу, не записывая данные в базу данных. Кажется, инструмент не подключается к базе данных. Я не получаю сообщений об ошибках.
Есть идеи, что я делаю не так? Спасибо за помощь.