Auf meinem lokalen Server läuft die Anwendungsdatenbank gut und bringt immer die gleichen Ergebnisse, aber wenn ich meine Flask-Anwendung auf dem Server bereitstellen und ein Element hinzufügen, variieren die Ergebnisse beim Abrufen die Daten. Sie können dieses Problem unter http://rest-menuapp.appspot.com/JSON anzeigen. Wenn Sie die Seite aktualisieren, werden Sie sehen, dass das Element manchmal nicht vorhanden ist und manchmal dort ist.Google App Engine - Flask - SQLAlchemy - Inkonsistente Datenbank
Hier ist meine app.yaml Datei:
runtime: python
env: flex
entrypoint: gunicorn -b :$PORT item_catalog:app
threadsafe: false
runtime_config:
python_version: 2
handlers:
- url: /static
static_dir: static
- url: /static/photos
static_dir: static/photos
- url: /.*
script: item_catalog.app
Hier ist meine Datenbank
from sqlalchemy import create_engine
from sqlalchemy.orm import scoped_session, sessionmaker
from sqlalchemy.ext.declarative import declarative_base
engine = create_engine('sqlite:///catalog.db', convert_unicode=True)
db_session = scoped_session(sessionmaker(autocommit=False,
autoflush=False,
bind=engine))
Base = declarative_base()
Base.query = db_session.query_property()
def init_db():
# import all modules here that might define models so that
# they will be registered properly on the metadata. Otherwise
# you will have to import them first before calling init_db()
import models
Base.metadata.create_all(bind=engine)
Diese
der Beginn meiner Routing-Python-Datei istfrom flask import Flask, render_template, request, redirect, jsonify,\
url_for, session, g, send_from_directory
from sqlalchemy import create_engine, asc
from sqlalchemy.orm import sessionmaker
from datetime import datetime
from functools import wraps
from werkzeug.utils import secure_filename
from PIL import Image
import os
from apiclient import discovery
import httplib2
from oauth2client import client, crypt
from database import init_db, db_session
from models import Item, Category, User, Photo
UPLOAD_FOLDER = 'static/photos'
ALLOWED_EXTENSIONS = set(['png', 'jpg', 'jpeg', 'gif'])
init_db()
app = Flask(__name__)
Sie speichern den Status lokal in einer Datei. Wenn mehrere Instanzen Ihre App ausführen, verfügen Sie über mehrere Kopien Ihrer Daten, die sich von den anderen unterscheiden. – univerio
Dies ist der Katalog.db. Wie würde ich ändern, um es für alle Instanzen zu speichern. – nanomosfet
Muss ich nur eine Postgresql-Datenbank einrichten? Oder wie kann ich mehrere Instanzen ausschalten? – nanomosfet