Dwukrotnie inicjujesz swoją bazę danych.
Proponuję dobrze się temu przyjrzeć:http://flask.pocoo .org/docs/0.10/patterns/sqlalchemy/
Zasadniczo będziesz chciał podzielić rzeczy na kilka dodatkowych plików, aby zapobiec problemom z importowaniem i sprawić, by wszystko było trochę bardziej czyste. Zrobiłem poniższe, co wydaje się działać. Uwaga, używałem SQLite, ponieważ nie mam zainstalowanego Postgresa na tym urządzeniu.
aplikacja.py
from flask import Flask
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////test11.db'
modele.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
trasy.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()
Zdecydowanie sugeruję przejrzenie kilku samouczków! Będziesz tego potrzebować:powinieneś dowiedzieć się o lukach w zabezpieczeniach sieci, sprawdzonych metodach i tak dalej.