log masuk kelalang digunakan dalam kelalang untuk pengesahan log masuk Berikut ialah model Pengguna:
class User(db.Model, UserMixin):
id = db.Column(db.INTEGER, primary_key=True)
name = db.Column(db.String(64))
email = db.Column(db.String(64))
password_hash = db.Column(db.String(128))
@property
def password(self):
raise AttributeError('password is not a readable attribute')
@password.setter
def password(self, password):
self.password_hash = generate_password_hash(password)
def verify_password(self, password):
return check_password_hash(self.password_hash, password)
def __repr__(self):
return '<User %r>' % self.name
@login_manager.user_loader
def load_user(user_id):
return User.query.get(int(user_id))
Ini borangnya:
class RegisterForm(FlaskForm):
email = StringField('Email', validators=[Required(), Length(1, 64), Email()])
username = StringField('Username', validators=[Required(), Length(1, 16), Regexp('^[A-Za-z][1-9]*$',
message='first is a string and the second must be a int')])
password = PasswordField('Password', validators=[Required(), Length(1, 64)])
password2 = PasswordField('Config Password', validators=[Required(), Length(1, 64)])
submit = SubmitField('Register')
def validata_email(self, field):
if User.query.filter_by(email=field.data).first():
raise ValidationError('Email is already register')
def validata_username(self, field):
if User.query_by(username=field.data).first():
raise ValidationError('User is already in use')
Ini ialah fungsi pandangan:
@auth.route('/register', methods=['GET', 'POST'])
def register():
form = RegisterForm()
if form.validate_on_submit():
user = User(name=form.username.data, email=form.email.data, password=form.password.data)
db.session.add(user)
login_user(user, True)
flash('Register successful!!')
return render_template('user.html')
return render_template('register.html', form=form)
Situasi semasa ialah apabila pengguna berjaya mendaftar, dia akan log masuk secara automatik dan melompat ke halaman berikut, tetapi jika dia terus meminta selepas melompat, ralat akan berlaku Jika log masuk dialih keluar semasa pendaftaran, akan berlaku takde masalah.tak tahu kenapa
Tiada apabila user_id tidak dapat ditemui, dan ralat berlaku apabila melaksanakan int(user_id)
Cuba perenggan ini
ditukar kepada