烧瓶中的数据库每次都会重新创建

时间:2019-02-06 20:10:36

标签: python-3.x flask sqlalchemy

对于一个应用程序,我有一个使用以下代码定义的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新的一行。我在here之前遵循了flask数据库教程,除了我的主页包含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"

创建了一个初始表

任何人都可以帮助解决这个问题。据我了解,数据库只能创建一次,并且每次刷新页面时,应用程序应该接收一系列新数据,并将其作为新行提交到数据库,而不是替换已经存在的数据。

0 个答案:

没有答案