Я новичок в Flask и продвинутой веб-разработке, так что go легко для меня. Я впервые использую Flask, и я все еще изучаю его. Я не уверен, что задаю правильный вопрос, поэтому я объясню, что я имею в виду.
С помощью учебных пособий я выяснил, как передавать данные и информацию с помощью элемента HTML <form>
в таких вещах, как регистрация / регистрация пользователя и переключение страниц, например, на индекс.
В моем случае я создаю сайт таймера решения для быстрого решения кубика Рубика. Я закончил сайт с чистым HTML / CSS / JavaScript, который, конечно, только сохраняет текущий сеанс и не экономит время в базе данных. Теперь я хочу преобразовать его в Flask веб-сайт.
Что я хотел бы знать, и извините, если это действительно широкий вопрос, как получить мою функцию JavaScript, которая обрабатывает окончание решения и первоначально просто сохранил его в локальном массиве, теперь сохраните его в базе данных SQL. Я использую SQLite в разработке, прежде чем переключиться на PostgreSQL или MySQL позже на своем веб-сервере.
Я уточню подробнее, если вы захотите. Заранее спасибо.
РЕДАКТИРОВАТЬ Вот что я пытался сделать, с информацией из разных уроков:
(я удалил все, что не относится)
JavaScript
//...
var xhr = new XMLHttpRequest();
xhr.open("POST", '/bgprc', true);
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.send(JSON.stringify({ time: time }));
//...
time
- это переменная, создаваемая после того, как решение выполнено по времени, и это то, что я пытаюсь отправить в базу данных.
models.py
class User(UserMixin, db.Model):
id = db.Column(db.Integer, primary_key=True)
#...
times = db.relationship('SolveTimes', backref='user', lazy='dynamic')
#...
def load_times(self):
times = SolveTimes.query.all()
return times
class SolveTimes(db.Model):
id = db.Column(db.Integer, primary_key=True)
times = db.Column(db.Float, index=True, unique=True)
user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
rout.py
@app.route('/')
@app.route('/index')
@login_required
def index():
times = current_user.load_times()
return render_template('index.html', times=times)
#...
@app.route('/bgprc')
def background_process():
try:
time = request.args.get('time', 0, type=str)
t = SolveTimes(time, user=current_user)
db.session.add(t)
db.session.commit()
except Exception as e:
return str(e)
И, наконец, индекс . html Я пытаюсь загрузить время в таблицу, основываясь на том, что было передано в rout.py
index. html
...
<ul id="solveTimes">
{% for time in times %}
<li>{{ time }}</li>
{% endfor %}
</ul>
...