Когда я отправляю форму, она всегда оказывается неудачной, и ничего не отправляется
Как я могу решить эту проблему?
Я новичок в этом, поэтому, пожалуйста, будьте со мной полегче
Код: Выделить всё
def add_picture(picture):
random_hex= secrets.token_hex(8)
_,f_ext=os.path.splitext(picture.filename)
picture_fn= random_hex + f_ext
picture_path= os.path.join(app.root_path,'static/default',picture_fn)
output_size=(200,200)
i=Image.open(picture)
i.thumbnail(output_size)
i.save(picture_path)
return picture_fn
#To add a user portfolio
@app.route('/admin/add',methods=['GET','POST'])
@login_required
def create_portfolio():
form=PortfolioForm()
if form.validate_on_submit():
user=User(username=form.username.data,
email=form.email.data,
content=form.content.data,
portfolio=form.portfolio.data,
github_link=form.github_link.data)
if form.image.data:
picture_file=add_picture(form.image.data)
user.img_path=picture_file
db.session.add(user)
db.session.commit()
flash('Successfully added a portfolio')
return redirect(url_for('admin'))
else:
flash('Unsuccessful')
return render_template('add_portfolio.html',title='Add Portfolio',form=form)
Это база данных
Код: Выделить всё
class User(db.Model):
id:Mapped[int]= mapped_column(primary_key=True)
username: Mapped[str] = mapped_column(nullable=False,unique=True)
email: Mapped[str] = mapped_column(nullable=False,unique=False)
content : Mapped[str] = mapped_column(nullable=True,unique=False)
portfolio : Mapped[str] = mapped_column(nullable=True,unique=False)
github_link : Mapped[str] = mapped_column(nullable=True,unique=False)
img_path : Mapped[str] = mapped_column(nullable=False,default='default.jpg')
Код: Выделить всё
class PortfolioForm(FlaskForm):
username= StringField('Username',validators=[InputRequired(),Length(min=3,max=60)])
email = StringField('Email', validators=[InputRequired(),Email()])
content = StringField('Skills', validators=[InputRequired(),Length(min=2,max=60)])
github_link = StringField('Upload your github profile link',validators=[InputRequired()])
image= FileField('Profile Picture',validators=[FileAllowed(['jpg','png','jpeg',])])
portfolio = TextAreaField('Portfolio',validators=[InputRequired()])
submit = SubmitField('Submit Portfolio')
Код: Выделить всё
{% extends 'base.html' %}
{% block content %}
Add Portfolio
{{ form.hidden_tag() }}
Add Portfolio
{{ form.username.label(class="form-control-label") }}
{{ form.username(class="form-control form-control-lg") }}
{{ form.email.label(class="form-control-label") }}
{{ form.email(class="form-control form-control-lg") }}
{{ form.portfolio.label(class="form-control-label") }}
{{ form.portfolio(class="form-control form-control-lg") }}
{{ form.image.label(class="form-control-label") }}
{{ form.image(class="form-control-file form-control-lg") }}
Accepted file types: jpg, png, jpeg
{{ form.submit(class="btn btn-outline-info") }}
{% endblock %}
Подробнее здесь: https://stackoverflow.com/questions/790 ... -on-submit