В общем, создаю сайт на фласк с регистрацией скорее всего я что-то не так понял и вообще не так ее оформил. У меня следующая ошибка:
Код такой:
from flask import Flask, render_template, request, redirect
from flask_sqlalchemy import SQLAlchemy
from datetime import datetime
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///user.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer(), primary_key=True)
username = db.Column(db.String(50), nullable=False, unique=True)
email = db.Column(db.String(100), nullable=False, unique=True)
password_hash = db.Column(db.String(100), nullable=False)
created_on = db.Column(db.DateTime(), default=datetime.utcnow)
updated_on = db.Column(db.DateTime(), default=datetime.utcnow, onupdate=datetime.utcnow)
def __repr__(self):
return '<User %r>' % self.id
@app.route('/', methods=['POST', 'GET'])
def main_page():
return render_template('index.html')
@app.route('/services', methods=['POST', 'GET'])
def services_page():
return render_template('services.html')
@app.route('/contacts', methods=['POST', 'GET'])
def contacts_page():
return render_template('contacts.html')
@app.route('/signup', methods=['POST', 'GET'])
def signup_page():
if request.method == 'POST':
email = request.form['email']
username = request.form['username']
password_hash = request.form['password_hash']
user = User(email = email, username = username, password_hash = password_hash)
db.session.add(user)
db.session.commit()
else:
return render_template('signup.html')
@app.route('/login', methods=['POST', 'GET'])
def login_page():
return render_template('login.html')
if __name__ == '__main__':
app.run(debug=True)
Код html страницы выглядит так:
{% extends 'base.html' %}
{% block title %}
Регистрация
{% endblock %}
{% block body %}
<div class="text-center">
<div class="row h-100 justify-content-center align-items-center">
<form class="form-signin" method="post">
<h1 class="h3 mb-3 font-weight-normal">Пожалуйста, зарегистрируйтесь</h1>
<label for="inputEmail" class="sr-only">Адрес электронной почты</label>
<input name="email" id="email" type="email" id="inputEmail" class="form-control" placeholder="Адрес электронной почты" required="" autofocus="">
<label for="inputNickname" class="sr-only">Логин</label>
<input name="username" id="username" type="nickname" id="inputNickname" class="form-control" placeholder="Логин" required="" autofocus="">
<label for="inputPassword" class="sr-only">Придумайте пароль понадежнее</label>
<input name="password_hash" id="password_hash" type="password" id="inputPassword" class="form-control" placeholder="Придумайте пароль понадежнее" required="">
<div class="checkbox mb-3">
</div>
<input type="submit" class="btn btn-lg btn-block btn-primary" value="Зарегистрироваться">
<a href="/login" class="btn btn-lg btn-block btn-secondary btn-wide transition-3d-hover">У меня уже есть аккаунт</a>
</form>
</div>
</div>
{% endblock %}