我在youtube教程的帮助下创建了这个flask博客。我已经可以创建一个用户名等,但当我试图添加名称部分,它给我这个错误
我不需要做这些吗?(稍后我将修复html内容。) 顺便说一句,当我删除这些“名称”部分,它的工作没有任何错误
这是来自users/forms.py的
class RegistrationForm(FlaskForm):
name= StringField("name", validators=[DataRequired(), Length(min=2, max=20)])
username = StringField("username", validators=[DataRequired(), Length(min=2, max=20)])
email = StringField("Email", validators=[DataRequired(), Email()])
password = PasswordField("Şifre", validators=[DataRequired(), Length(min=4, max=50)])
confirm_password = PasswordField("Şifreyi onayla", validators=[DataRequired(), Length(min=4, max=50), EqualTo("password")])
submit = SubmitField("Kayıt Ol")
def validate_username(self, username): #database de bu kullunaci varmi onu kontrol ediy
user= User.query.filter_by(username=username.data).first()
if user:
raise ValidationError("bu kullanici adi daha onceden alinmis.")
def validate_email(self, email): #database de bu kullunaci varmi onu kontrol ediy
user= User.query.filter_by(email=email.data).first()
if user:
raise ValidationError("bu email daha onceden kullanilmis.")
这是来自users/routes.py的
@users.route("/register", methods=["GET", "POST"]) #burda methodlari eklemezsek method not allowed error u verecek. tekrar bi bak buna
def register():
if current_user.is_authenticated:
return redirect(url_for('main.home'))
form = RegistrationForm()
if form.validate_on_submit():
hashed_password = bcrypt.generate_password_hash(form.password.data).decode('utf-8') #form.password.data girilen sifre ilk kismi tekrar check btw.hashed_password = bcrypt.generate_password_hash fln.
user = User(name=form.name.data, username=form.username.data, email=form.email.data, password=hashed_password) #creating user. user=User()i grasp well.
db.session.add(user)
db.session.commit()
flash('Hesabiniz olusturuldu. Giris yapabilirsiniz.', 'success') #success bootstrap seysi
return redirect(url_for("users.login")) #home burda route daki function un adi
return render_template("register.html", title="Kayıt Ol", form=form)
这是来自users/models.py的
class User(db.Model, UserMixin):
id = db.Column(db.Integer, primary_key=True) #primary_key=true a uniqie id for user.....
name = db.Column(db.String(20), nullable=False)
username = db.Column(db.String(20), unique=True, nullable=False) #string 20 olmasinin nedeni max username.. uniqie olmasi da abvious zati... nulable=false da null olmasini engeller usernamin
email = db.Column(db.String(120), unique=True, nullable=False)
image_file = db.Column(db.String(20), nullable=False, default="default.jpg")
password = db.Column(db.String(60), nullable=False)
posts = db.relationship('Post', backref='author', lazy=True) #check again
目前没有回答
相关问题 更多 >
编程相关推荐