【发布时间】:2020-10-06 15:31:53
【问题描述】:
我开始为项目创建登录注册网页,为此我想使用“wtforms”,但如果不使用 flask-bootstrap 库,我找不到任何示例。 我可以在没有flask-bootstrap的情况下使用wtform吗?
我做了一些实验,但似乎没有用。
这是我的代码: HTML:
<div class="login-form">
<form action="/registration" method="POST">
<h2 class="text-center">Registrazione</h2>
<div class="form-group has-error">
<input type="text" class="form-control" name="nome" placeholder="Nome" required="required">
</div>
<div class="form-group has-error">
<input type="text" class="form-control" name="cognome" placeholder="Cognome" required="required">
</div>
<div class="form-group">
<input type="email" class="form-control" name="email" placeholder="E-mail" required="required">
</div>
<div class="form-group">
<input type="password" class="form-control" name="password" placeholder="Password" pattern="(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}" title="la password deve contenere almeno un numero, una lettera maiuscola, una minuscola e deve essere almeno di 8 carateri" required="required">
</div>
<div class="form-group">
<input type="password" class="form-control" name="confermaPsw" placeholder="Conferma password" pattern="(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}" title="la password deve contenere almeno un numero, una lettera maiuscola, una minuscola e deve essere almeno di 8 carateri" required="required">
</div>
<div class="form-group">
<select class="form-control" name="ruolo" id="sel1" required="required">
<option>SW</option>
<option>PM</option>
<option>PE</option>
</select>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary btn-lg btn-block">Registrati</button>
</div>
</form>
Python:
class RegisterForm(FlaskForm):
name = StringField('name', validators=[InputRequired(), Length(min=4, max=15)])
surname = StringField('surname', validators=[InputRequired(), Length(min=4, max=15)])
email = StringField('email', validators=[InputRequired(), Length(max=50)])
password = PasswordField('password', validators=[InputRequired(), Length(min=8, max=80)])
ruolo = StringField('urole', validators=[InputRequired()])
@app.route('/registration', methods=['POST', 'GET'])
def registration():
# se tutti gli input rispettano i prerequisiti di validazione, aggiungi utente
form = RegisterForm()
if request.method == 'POST':
if form.validate_on_submit():
hashed_password = generate_password_hash(form.password.data, method='sha256')
new_user = User(name=form.nome.data, surname=form.cognome.data, email=form.email.data, password=hashed_password, urole=form.ruolo.data)
db.session.add(new_user)
db.session.commit()
return '<h1>New user has been created!</h1>'
return '<h1>post send but no validate!</h1>'
return render_template("registration.html", form=form)
EDIT: I need to have the same formatting I had before using WTForms
【问题讨论】:
-
看看我在其他类似帖子上的回答,它可能会对您有所帮助:stackoverflow.com/a/61374885/12368419
-
没有办法不使用 {{form.hidden_tag ()}} 和 {{form.name}} 如果没有,我怎么能插入placeolder classes等?
-
观看其中一个视频youtube.com/watch?v=vzaXBm-ZVOQ&ab_channel=PrettyPrinted - 我非常喜欢它们并实现了在线会议的注册。
标签: html python-3.x flask flask-wtforms flask-bootstrap