0

в инете много вопросов про это но ответов либо нет, либо не помогают

ошибка: sqlalchemy.exc.IntegrityError: (sqlite3.IntegrityError) NOT NULL constraint failed: users.id

код:

from flask import Flask, render_template, url_for,request, redirect
from flask_sqlalchemy import SQLAlchemy
from datetime import datetime

app=Flask(name) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///blog.db' db = SQLAlchemy(app) app.app_context().push()

class Users(db.Model): id=db.Column(db.Integer, primary_key=True, autoincrement=True) vozrast=db.Column(db.String, nullable=False) name=db.Column(db.String(20), nullable=False) familia=db.Column(db.String(20), nullable=False) pol=db.Column(db.Text(20), nullable=False) date_reg=db.Column(db.DateTime, default=datetime.utcnow)

def __repr__(self):
    return '<Users %r>' % self.id

@app.route('/') def mainl(): return render_template("index.html")

@app.route('/info') def infl(): return render_template("info.html")

@app.route('/account/<string:login>/<string:password>', methods=['POST','GET']) def acc(login,password): if login == "admin" and password == "admin": if request.method=="POST": vozrast =request.form['vozrast'] name =request.form['name'] familia =request.form['familia'] pol =request.form['pol']

        users = Users(vozrast=vozrast,name=name,familia=familia,pol=pol)


        db.session.add(users)
        db.session.commit()
        return redirect('/')

    else:
        return render_template(&quot;account.html&quot;)
else:
    return redirect('/')

if name=="main": app.run(debug=True)

qsxdr
  • 7

1 Answers1

0

Вы забыли создать базу:

if __name__=="__main__":
    with app.app_context():
        db.create_all()
    app.run(debug=True)
  • в конце моего кода есть

    if name=="main": app.run(debug=True)

    поменял это на то что вы написали, не помогло

    – qsxdr Dec 18 '23 at 12:00
  • ошибка не изменилась? – Alexandr Samodurov Dec 18 '23 at 12:09
  • нет:

    sqlalchemy.exc.IntegrityError: (sqlite3.IntegrityError) NOT NULL constraint failed: users.id [SQL: INSERT INTO users (vozrast, name, familia, pol, date_reg) VALUES (?, ?, ?, ?, ?)] [parameters: ('77', 'имя', 'фамилия', 'пол', '2023-12-18 13:45:00.829387')] (Background on this error at: https://sqlalche.me/e/20/gkpj)

    – qsxdr Dec 18 '23 at 13:46
  • Пропробуйте удалить автоинкремент. id=db.Column(db.Integer, primary_key=True) – Alexandr Samodurov Dec 18 '23 at 19:14