База данных в колбе создается заново каждый раз - PullRequest
0 голосов
/ 06 февраля 2019

Для приложения у меня есть страница routes.py, определенная с помощью следующего кода:

#!/usr/bin/python3
from app import app
import ssl
import os
from flask import Flask
from flask import render_template
from flask import request
import json
from flask_sqlalchemy import SQLAlchemy
from app.models import Test
from sqlalchemy import exc
from app import db

@app.route("/", methods=["GET", "POST"])
def home():

    if request.method == "POST":
        results_received = request.get_json()
        print ("Printing resuts")
        print(results_received)

        #get useragent, timestamp, test_run, test_type, domain_id, status
        results_received=request.get_json()
        for key, value in results_received.items():
            test = Test(useragent = value[5], timestamp = value[2], test_run = value[0], test_type = value[3], domain_id = value[4], status = value[1])
            print (test)
            try:
                db.session.add(test)
                db.session.commit()
            except exc.IntegrityError as e:
                db.session().rollback()

        print("Total tests")
        tests = Test.query.all()
        print (tests)

    return render_template("index.html")

Когда загружается страница, размещенная на локальном хосте в index.html, некоторые данные из javascript страницыполучил и передал в db.Однако, когда я обновляю страницу и показываю итоговые тесты в конце, создается новая запись, которая заменяет более старую, вместо того, чтобы быть двумя записями / строками, так как при обновлении страницы отправляется новый json, который должен создать новыйстрока.Я следовал учебному пособию по базе данных фляг над здесь , и у меня почти такая же структура, как в учебнике, за исключением того, что моя главная страница содержит код для HTTPS.Я определяю db внутри config.py, используя следующий код:

#!/usr/bin/python3

from flask import Flask
from config import Config
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate

app = Flask(__name__)
app.config.from_object(Config)

db = SQLAlchemy(app)
migrate = Migrate(app, db)

from app import routes, models

И, как и в учебнике, я создал исходную таблицу, используя flask db migrate -m "tests table"

Может кто-нибудь помочь сэта проблема.Насколько я понимаю, база данных должна создаваться только один раз, и каждый раз, когда я обновляю страницу, приложение должно получать новую серию данных и фиксировать в базе данных как новую строку вместо замены уже существующей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...