PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Flask:sqlalchemy.exc.ProgrammingError:(psycopg2.ProgrammingError) Beziehung Benutzer existiert nicht

Sie initialisieren Ihre Datenbank zweimal.

Ich würde vorschlagen, sich das genau anzusehen:http://flask.pocoo .org/docs/0.10/patterns/sqlalchemy/

Im Wesentlichen sollten Sie die Dinge in ein paar weitere Dateien aufteilen, um Importprobleme zu vermeiden und die Dinge ein wenig sauberer zu machen. Ich habe das unten getan, was zu funktionieren scheint. Beachten Sie, dass ich SQLite verwendet habe, da ich Postgres nicht auf diesem Rechner installiert habe.

app.py

from flask import Flask
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////test11.db'

models.py

from flask.ext.sqlalchemy import SQLAlchemy
from app import app
db = SQLAlchemy(app)

class User(db.Model):
    __tablename__ = 'users'
    uid = db.Column(db.Integer, primary_key = True)
    firstname = db.Column(db.String(100))
    lastname = db.Column(db.String(100))
    email = db.Column(db.String(120), unique=True)
    pwdhash = db.Column(db.String(54))

def __init__(self, firstname, lastname, email, password):
    self.firstname = firstname.title()
    self.lastname = lastname.title()
    self.email = email.lower()
    self.set_password(password)

def set_password(self, password):
    self.pwdhash = (password)

def check_password(self, password):
    return password

routen.py

from models import User, db

db.create_all()
db.session.commit()

admin = User('admin', '[email protected]', 'admin1', '[email protected]')
guest = User('admi2', '[email protected]', 'admin', '[email protected]')
db.session.add(admin)
db.session.add(guest)
db.session.commit()

Ich würde auf jeden Fall vorschlagen, sich einige Tutorials anzusehen! Sie werden es brauchen:Sie sollten sich über Web-Schwachstellen, Best Practices und so weiter informieren.