sql >> Database >  >> RDS >> PostgreSQL

Flask:sqlalchemy.exc.ProgrammingError:(psycopg2.ProgrammingError) relatie gebruikers bestaat niet

U initialiseert uw database twee keer.

Ik raad je aan hier eens goed naar te kijken:http://flask.pocoo .org/docs/0.10/patterns/sqlalchemy/

In wezen wilt u de zaken in nog een paar bestanden opsplitsen om importproblemen te voorkomen en de zaken wat overzichtelijker te maken. Ik heb het onderstaande gedaan wat lijkt te werken. Let op, ik heb SQLite gebruikt, aangezien ik Postgres niet op deze box heb geïnstalleerd.

app.py

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

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

Ik zou zeker aanraden om wat tutorials te bekijken! Je hebt het nodig:je moet meer te weten komen over webkwetsbaarheden, best practices, enzovoort.



  1. Het ROOT-wachtwoord opnieuw instellen in MySQL 5.6

  2. Converteer een UTC-tijdzone in postgresql naar EST (lokale tijd)

  3. Oracle (ORA-02270):geen overeenkomende unieke of primaire sleutel voor deze kolomlijstfout

  4. ORA-19011:Tekenreeksbuffer te klein