Você está inicializando seu banco de dados duas vezes.
Sugiro dar uma boa olhada nisso:http://flask.pocoo .org/docs/0.10/patterns/sqlalchemy/
Essencialmente, você desejará dividir as coisas em mais alguns arquivos para evitar problemas de importação e tornar as coisas um pouco mais limpas. Eu fiz o abaixo que parece funcionar. Note, eu usei o SQLite, pois não tenho o Postgres instalado nesta caixa.
app.py
from flask import Flask
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////test11.db'
modelos.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
route.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()
Eu definitivamente sugiro olhar alguns tutoriais! Você vai precisar dele:você deve aprender sobre vulnerabilidades da web, práticas recomendadas e assim por diante.