sql >> Databasteknik >  >> RDS >> PostgreSQL

Flask :sqlalchemy.exc.ProgrammingError:(psycopg2.ProgrammingError) relationsanvändare existerar inte

Du initierar din databas två gånger.

Jag skulle föreslå att du tittar ordentligt på detta:http://flask.pocoo .org/docs/0.10/patterns/sqlalchemy/

I huvudsak vill du dela upp saker och ting i några fler filer för att förhindra importproblem och göra saker lite renare. Jag har gjort nedanstående som verkar fungera. Notera, jag har använt SQLite, eftersom jag inte har Postgres installerat på denna box.

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

routes.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()

Jag skulle definitivt rekommendera att titta igenom några tutorials! Du behöver det:du bör lära dig om webbsårbarheter, bästa praxis och så vidare.



  1. Få resultat från räknefrågor via getSingleScalarResult() och groupBy() - undantag

  2. 10 Kortkommandon för Microsoft Access-navigeringsfönstret

  3. Hitta skärningspunkter mellan rader och tidsstämplar i en mysql db

  4. kontrollera om kolumnen finns före ALTER TABLE -- mysql