2. В функции create_app вы используешь Flask(name), вместо Flask(__name__).
3. Ошибка в методе запроса:
В функциях login и register используешь request.method == "POST", однако не импортировала модуль request. Добавь строку в начало файла:
from flask import request
4. Вместо if name == "main": должно быть if __name__ == "__main__":.
5. Функции setup_db неправильный путь. Замени "sqlite3:///database.bd" на "sqlite:///
database.bd ".
На, вот так попробуй
from flask import Flask, render_template, flash, redirect, url_for, session, logging, request
from flask_sqlalchemy import SQLAlchemy
def create_app(test_config=None):
app = Flask(__name__)
setup_db(app)
return app
database_path = "sqlite:/// database.bd "db = SQLAlchemy()
def setup_db(app, database_path=database_path):
app.config["SQLALCHEMY_DATABASE_URI"] = database_path
testdb = db.init_app(app)
with app.app _context():
db.create_all()
class user(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80)) email = db.Column(db.String(120))
password = db.Column(db.String(80))
app = create_app()
@app.route("/")
def index():
return render_template("templates/index.html")
@app.route("/login",methods=["GET", "POST"])
def login():
if request.method == "POST":
uname = request.form["uname"] passw = request.form["passw"]
login = user.query.filter_by(username=uname, password=passw).first()
if login is not None:
return redirect(url_for("index"))
return
render_template("templates/login.html")
@app.route("/register", methods=["GET", "POST"])def register():
if request.method == "POST":
uname = request.form['uname']
mail = request.form['mail']
passw = request.form['passw']
register = user(username = uname, email = mail, password = passw)
db.session.add(register) db.session.commit()
return redirect(url_for("login"))
return render_template("templates/register.html")
if name == "__main__":
app.run (debug=True)