Python TypeError:uuu init_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu;编号';

Python TypeError:uuu init_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu;编号';,python,flask,flask-login,Python,Flask,Flask Login,在调用/login页面之前,我正在使用Flask创建/register 当我提交注册表并转到“/login”时,会显示此错误 这是我的“app.py”: from projeto import app, db from flask import Blueprint, render_template, redirect, request, url_for, flash, abort from flask_login import login_user, login_required, logout

在调用/login页面之前,我正在使用Flask创建/register

当我提交注册表并转到“/login”时,会显示此错误

这是我的“app.py”:

from projeto import app, db
from flask import Blueprint, render_template, redirect, request, url_for, flash, abort
from flask_login import login_user, login_required, logout_user
from projeto.models import User
from projeto.forms import LoginForm, RegistrationForm


@app.route('/')
def home():
    return render_template('home.html')


@app.route('/welcome')
@login_required
def welcome_user():
    return render_template('welcome_user.html')


@app.route('/logout')
@login_required
def logout():
    logout_user()
    flash('Logout realizado com sucesso!')
    return redirect(url_for('home'))


@app.route('/login', methods=['GET', 'POST'])
def login():

    form = LoginForm()
    if form.validate_on_submit():
        # Grab the user from our User Models table
        user = User.query.filter_by(email=form.email.data).first()

        # Check that the user was supplied and the password is right
        # The verify_password method comes from the User object
        # https://stackoverflow.com/questions/2209755/python-operation-vs-is-not

        if user.check_password(form.password.data) and user is not None:
            #Log in the user

            login_user(user)
            flash('Login realizado com sucesso!')

            # If a user was trying to visit a page that requires a login
            # flask saves that URL as 'next'.
            next = request.args.get('next')

            # So let's now check if that next exists, otherwise we'll go to
            # the welcome page.
            if next == None or not next[0]=='/':
                next = url_for('welcome_user')

            return redirect(next)
    return render_template('login.html', form=form)


@app.route('/register', methods=['GET', 'POST'])
def register():
    form = RegistrationForm()

    if request.method == 'POST':
        user = User(name=form.name.data,
                    address=form.address.data,
                    number=form.number.data,
                    city=form.city.data,
                    state=form.state.data,
                    country_code=form.country_code.data,
                    phone=form.phone.data,
                    email=form.email.data,
                    username=form.username.data,
                    password=form.password.data)

        db.session.add(user)
        db.session.commit()
        flash('Obrigado por seu registro! Agora você pode realizar o login.')
        return redirect(url_for('login'))
    return render_template('register.html', form=form)

if __name__ == '__main__':
    app.run(debug=True)
这是我的'init.py'

import os
from flask import Flask, Blueprint
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate
from flask_login import LoginManager

#CREATE A LOGIN MANAGER OBJECT
login_manager = LoginManager()

#CREATE MY APPLICATION
app = Flask(__name__)

# CREATE MY DATABASE
app.config['SECRET_KEY'] = 'secret'
basedir = os.path.abspath(os.path.dirname(__file__))
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + os.path.join(basedir, 'data.sqlite')
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

#CONFIGURATE MY DATABASE WITH THE APP STRUCTURE
db = SQLAlchemy(app)
Migrate(app,db)

#Pass in our app to the login MANAGER
login_manager.init_app(app)

# Tell users what view to go when they need to login_manager
login_manager.login_view = 'login'
这是我的‘models.py’

from projeto import db, login_manager
from werkzeug.security import generate_password_hash, check_password_hash
from flask_login import UserMixin


@login_manager.user_loader
def load_user(user_id):
    return User.query.get(user_id)

class User(db.Model, UserMixin):

    # Create a table in the db
    __tablename__ = 'usuario'

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(70))
    address = db.Column(db.String(120))
    number = db.Column(db.Integer)
    city = db.Column(db.String(150))
    state = db.Column(db.String(20))
    country_code = db.Column(db.Integer)
    phone = db.Column(db.String(11))
    email =db.Column(db.String(64), unique=True, index=True)
    username = db.Column(db.String(64), unique=True, index=True)
    password_hash = db.Column(db.String(128))

    def __init__(self, name, address, numer, city, state, country_code, phone,
                email, username, password):

        self.name = name
        self.address = address
        self.number = number
        self.city = city
        self.state = state
        self.country_code = country_code
        self.phone = phone
        self.email = email
        self.username = username
        self.password = password
这是“回溯”

我只是想了解我的问题来解决它


我试图搜索这个问题,找到了一些案例,但仍然无法找到解决方法。

请发送完整的错误消息,我是说完整的异常。我想问题是从

               User(name=form.name.data,
                    address=form.address.data,
                    number=form.number.data,
                    city=form.city.data,
                    state=form.state.data,
                    country_code=form.country_code.data,
                    phone=form.phone.data,
                    email=form.email.data,
                    username=form.username.data,
                    password=form.password.data)
这部分代码。

简单回答

您的模型的init方法中有一个输入错误


您在register@app.route('/register',methods=['GET',POST'])的第63行编写了
numer
而不是
numer

Traceback将帮助文件“C:\Users\Sony\Desktop\Projeto\Flask\app.py”在这个framedef register()中打开一个交互式python shell:form=registationform()如果request.method='POST':user=user(name=form.name.data,address=form.address.data,number=form.number.data,city=form.city.data,state=form.state.data,country\u code=form.country\u code.data,这仍然不是完整的回溯,您需要向我们展示您的模型我更改了我的问题n要显示所有这些,确定吗?在register@app.route('/register',methods=['GET',POST'])中的第63行文件“C:\Users\Sony\Desktop\Projeto\u Flask\app.py”在这个framedef register()中打开一个交互式python shell:form=registationform()如果request.method==''POST':user=user(name=form.name.data,address=form.address.data,number=form.number.data,city=form.city.data,state=form.state.data,country\u code=form.country\u code.data,
               User(name=form.name.data,
                    address=form.address.data,
                    number=form.number.data,
                    city=form.city.data,
                    state=form.state.data,
                    country_code=form.country_code.data,
                    phone=form.phone.data,
                    email=form.email.data,
                    username=form.username.data,
                    password=form.password.data)