1

アプリで本と著者を作成するための 2 つのフラスコ フォームがあります。どちらもすべてのフィールドが入力されている場合にのみ機能しますが、厳密に必要なのは 1 つまたは 2 つだけです!

著者クラス:

class AuthorForm(Form):
familyname = TextField('familyname', validators = [Required()])
firstname = TextField('firstname', validators = [Required()])
biography = TextAreaField('biography')
dateofbirth = DateField('dateofbirth')
placeofbirth = TextField('placeofbirth')
nationality = TextField('nationality')
website = TextField('website')

テンプレート:

<form action="" method="post" name="add_author">
    {{form.hidden_tag()}}
    <p>Veuillez donner son prénom (obligatoire) : {{form.firstname}}</p>
    <p>Nom de famille (obligatoire) : {{form.familyname}}</p>
    <p>Nationalité : {{form.nationality}}</p>
    <p>Lieu de naissance : {{form.placeofbirth}}</p>
    <p>Date de naissance (Y-m-d): {{form.dateofbirth}}</p>
    <p>Site web : {{form.website}}</p>
    <p>Biographie : {{form.biography}}</p>
   <p><input type="submit" value="Envoyer"></p>
</form>
{% endblock %}

そしてビュー:

@app.route('/add_author', methods = ['GET', 'POST'])
def add_author():
form = AuthorForm()
if form.validate_on_submit():
    a = Author(firstname= form.firstname.data,
    familyname= form.familyname.data,
    nationality= form.nationality.data,
    dateofbirth= form.dateofbirth.data,
    placeofbirth = form.placeofbirth.data,
    website = form.website.data,
    biography = form.biography.data)
    db.session.add(a)
    db.session.commit()
    return redirect('/index')
return render_template('add_author.html', title = 'Ajouter un auteur a la base de donnees', form = form)
4

1 に答える 1