Cara menggunakan Flask-WTF untuk melaksanakan pengesahan borang
Flask-WTF ialah sambungan Flask untuk mengendalikan pengesahan borang web Ia menyediakan cara yang ringkas dan fleksibel untuk mengesahkan data yang diserahkan oleh pengguna. Artikel ini akan menunjukkan kepada anda cara menggunakan sambungan Flask-WTF untuk melaksanakan pengesahan borang.
Untuk menggunakan Flask-WTF, anda perlu memasangnya terlebih dahulu. Anda boleh menggunakan arahan pip untuk memasang:
pip install Flask-WTF
Untuk menggunakan Flask-WTF dalam aplikasi Flask, anda perlu mengimport beberapa modul. Tambahkan pernyataan import berikut dalam fail app.py:
from flask import Flask, render_template, request from flask_wtf import FlaskForm from wtforms import StringField, PasswordField, SubmitField from wtforms.validators import DataRequired, Length
Modul yang diimport di sini termasuk Flask, FlaskForm dan beberapa medan dan pengesah yang biasa digunakan.
Dalam fail app.py, buat kelas borang yang diwarisi daripada FlaskForm. Setiap medan borang ditakrifkan sebagai harta kelas, dan pengesah yang akan digunakan boleh ditentukan melalui parameter pengesah. Contohnya, berikut ialah kelas borang log masuk mudah:
class LoginForm(FlaskForm): username = StringField('用户名', validators=[DataRequired(), Length(min=4, max=20)]) password = PasswordField('密码', validators=[DataRequired()]) submit = SubmitField('登录')
Kelas borang ini mengandungi medan nama pengguna, medan kata laluan dan butang hantar.
Buat aplikasi Flask dan gunakan borang dalam fungsi penghalaan. Contohnya:
app = Flask(__name__) app.secret_key = 'your-secret-key' @app.route('/login', methods=['GET', 'POST']) def login(): form = LoginForm() if form.validate_on_submit(): # 表单验证通过 # 执行登录逻辑 return '登录成功' return render_template('login.html', form=form) if __name__ == '__main__': app.run()
Dalam contoh ini, kami mencipta laluan /login untuk memaparkan borang log masuk. Apabila pengguna menyerahkan borang, kaedah validate_on_submit() dipanggil untuk pengesahan. Jika pengesahan lulus, logik log masuk boleh dilaksanakan jika tidak, halaman borang akan dipaparkan semula dan mesej ralat pengesahan akan dipaparkan.
Buat fail templat bernama login.html dalam folder templat untuk memaparkan borang log masuk. Anda boleh menggunakan atribut borang yang disediakan oleh Flask-WTF untuk menjana kod HTML borang dan maklumat ralat pengesahan. Contohnya:
<!DOCTYPE html> <html> <head> <title>登录</title> </head> <body> <h1>登录</h1> <form method="POST" action="{{ url_for('login') }}"> {{ form.csrf_token }} {{ form.username.label }} {{ form.username }} {% for error in form.username.errors %} <span style="color: red;">{{ error }}</span> {% endfor %} <br> {{ form.password.label }} {{ form.password }} {% for error in form.password.errors %} <span style="color: red;">{{ error }}</span> {% endfor %} <br> {{ form.submit }} </form> </body> </html>
Dalam fail templat ini, gunakan form.csrf_token untuk menjana medan perlindungan pemalsuan permintaan merentas tapak. Melalui medan borang dan sifat form.errors, medan borang dan mesej ralat pengesahan boleh dijana masing-masing.
Gunakan arahan berikut untuk menjalankan aplikasi:
python app.py
Lawati http://localhost:5000/login dalam penyemak imbas untuk melihat halaman log masuk. Masukkan nama pengguna dan kata laluan dan klik butang hantar Anda boleh melihat bahawa data borang telah disahkan dan diproses dengan sewajarnya berdasarkan hasil pengesahan.
Di atas adalah langkah asas untuk menggunakan Flask-WTF untuk melaksanakan pengesahan borang. Melalui kaedah ini, data yang dikemukakan oleh pengguna boleh disahkan dengan mudah bagi memastikan kesahihan dan keselamatannya. Bukan itu sahaja, Flask-WTF juga menyediakan ciri kaya lain, seperti muat naik fail, sokongan berbilang bahasa, dsb. Saya harap artikel ini dapat membantu anda dan membolehkan anda menggunakan Flask-WTF dengan lebih baik untuk mengendalikan pengesahan borang.
Atas ialah kandungan terperinci Cara menggunakan Flask-WTF untuk melaksanakan pengesahan borang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!