Правило IPAddress
Правило IPAddress применяется к полям формы
Flask-WTF для проверки того, что пользователь ввёл
корректный IP-адрес. Правило поддерживает как IPv4,
так и IPv6 адреса. По умолчанию проверяются оба
формата, но можно ограничить только одним, передав
параметр ipv4 или ipv6.
Синтаксис
IPAddress(message=None, ipv4=True, ipv6=True)
Пример
Давайте создадим форму с полем для IP-адреса
и применим к нему правило IPAddress:
from flask import Flask, render_template
from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField
from wtforms.validators import IPAddress
app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret'
class MyForm(FlaskForm):
ip = StringField('IP', validators=[IPAddress()])
submit = SubmitField('Send')
@app.route('/', methods=['GET', 'POST'])
def index():
form = MyForm()
if form.validate_on_submit():
return f"Valid IP: {form.ip.data}"
return render_template('index.html', form=form)
Создадим шаблон для отображения формы:
<form method="post">
{{ form.csrf_token }}
<p>{{ form.ip.label }} {{ form.ip }}</p>
<p>{{ form.submit }}</p>
</form>
Результат выполнения кода для адреса 192.168.1.1:
Valid IP: 192.168.1.1
Пример
Давайте ограничим проверку только IPv4-адресами:
from flask import Flask, render_template
from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField
from wtforms.validators import IPAddress
app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret'
class MyForm(FlaskForm):
ip = StringField('IP', validators=[IPAddress(ipv6=False)])
submit = SubmitField('Send')
@app.route('/', methods=['GET', 'POST'])
def index():
form = MyForm()
if form.validate_on_submit():
return f"Valid IPv4: {form.ip.data}"
return render_template('index.html', form=form)
Создадим шаблон для отображения формы:
<form method="post">
{{ form.csrf_token }}
<p>{{ form.ip.label }} {{ form.ip }}</p>
<p>{{ form.submit }}</p>
</form>
Результат выполнения кода для адреса 10.0.0.1:
Valid IPv4: 10.0.0.1