Ejemplo n.º 1
0
class LanDeleteIpForm(FlaskForm):
    ipstart = StringField('Начальный IP',
                          default='0.0.0.0',
                          validators=[
                              IPAddress(ipv4=True,
                                        ipv6=False,
                                        message='Неверный IP адрес'),
                          ])

    ipend = StringField('Конечный IP',
                        default='0.0.0.0',
                        validators=[
                            IPAddress(ipv4=True,
                                      ipv6=False,
                                      message='Неверный IP адрес'),
                        ])

    def validate_ipstart(self, ip):
        if ip.data == '0.0.0.0':
            raise ValidationError('Неверный IP адрес')

    def validate_ipend(self, ip):
        if ip.data == '0.0.0.0':
            raise ValidationError('Неверный IP адрес')

    submit = SubmitField('Сохранить')
Ejemplo n.º 2
0
class ServerInputs(Inputs):
    """
    Validation class for inputs
    """
    json = {
        'name': [
            DataRequired('Server name is required.'),
            Regexp('^[a-zA-Z0-9_.-]+$', 0,
                   'Only alphabets, numbers, _ and . are allowed.')
        ],
        'hostname': [
            DataRequired('Host name is required.'),
            Regexp('^[a-zA-Z0-9_.-]+$', 0,
                   'Only alphabets, numbers, _ and . are allowed.')
        ],
        'enabled': [
            Optional(),
        ],
        'admin-listener': [Optional(), Validation.port_validation],
        'internal-listener': [Optional(), Validation.port_validation],
        'http-listener': [Optional(), Validation.port_validation],
        'zookeeper-listener': [Optional(), Validation.port_validation],
        'replication-listener': [Optional(), Validation.port_validation],
        'client-listener': [Optional(), Validation.port_validation],
        'internal-interface': [Optional(),
                               IPAddress('Invalid IP address.')],
        'external-interface': [Optional(),
                               IPAddress('Invalid IP address.')],
        'public-interface': [Optional(),
                             IPAddress('Invalid IP address.')],
    }
Ejemplo n.º 3
0
class ConfigForm(Form):
    router_id = StringField('Router-ID', validators=[Required(), IPAddress()])
    asn = StringField('Local AS Number',
                      validators=[Required(), Range(1, 65535)])
    local_ip = StringField('Local IP Address',
                           validators=[Required(), IPAddress()])
    submit = SubmitField('Save Config')
Ejemplo n.º 4
0
class ReactForm(BaseReactForm):
    ''' Class that creates a CloudFlair Reaction form for the dashboard '''
    email = TextField("Email",
                      validators=[Email(message='Email address invalid')])
    domain = TextField(
        "Domain",
        validators=[DataRequired(message='Domain is a required field')])
    apikey = TextField(
        "APIKey",
        validators=[DataRequired(message='API Key is a required field')])
    ip = TextField("IP",
                   validators=[
                       IPAddress(message='Does not match IP address format'),
                       DataRequired(message='IP is a required field')
                   ])
    replaceip = TextField(
        "ReplaceIP",
        validators=[
            IPAddress(message='Does not match IP address format'),
            DataRequired(message='Replace IP is a required field')
        ])
    failback = SelectField(
        "Failback",
        choices=[('manual', 'None'), ('automatic', 'Automatic')],
        validators=[
            DataRequired(message='Failback Method is a required field')
        ])
Ejemplo n.º 5
0
class AddBadIP(FlaskForm):
    badIP = StringField("IP Address", validators=[DataRequired(), IPAddress()])
    source = StringField("Detected by IP",
                         validators=[DataRequired(),
                                     IPAddress()])
    notes = StringField("Reason for ban", validators=[DataRequired()])
    submit = SubmitField("Ban IP")
Ejemplo n.º 6
0
class MakeConfigForm2(FlaskForm):
    hostname = StringField('Hostname', validators=[CheckHostname()])
    ipaddress = StringField(
        'IPv4', validators=[IPAddress(message='Неверный формат ip-адреса')])
    netmask = StringField('MASK', validators=[CheckNetmask()])
    gateway = StringField('GW',
                          validators=[
                              IPAddress('Неверный формат ip-адреса'),
                              CheckIPConnectivity()
                          ])
    mng_vlan = StringField('MGMT_VLAN', validators=[CheckVlans()])
    client_ports = StringField('Диапазон клиентских портов (например 1,3-24)',
                               validators=[CheckPorts()])
    vlan_character = RadioField(
        'Характер вланов',
        choices=[('PCV', 'PCV'), ('single_vlan', 'Один влан на все порты')],
        validators=[DataRequired(message='Неоходимо выбрать')],
        default='PCV')
    PCV_group = SelectField('Диапазон вланов PCV', coerce=int)
    pppoe_single_vlan = StringField(
        'Указать одиночный влан',
        validators=[
            CheckSingleVlan(required_field=('vlan_character', 'single_vlan'))
        ])
    reset_2 = SubmitField('Начать заново')
    submit2 = SubmitField('Следующий шаг')

    def __init__(self, PCV_group_choices, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.PCV_group.choices = PCV_group_choices
Ejemplo n.º 7
0
class PeeringForm(FlaskForm):
    peering = SelectField('peering',
                          coerce=int,
                          choices=[(1, 'SIX'), (2, 'NIX.CZ'), (3, 'NIX.SK'),
                                   (4, 'AMS-IX')])
    description = StringField('description', validators=[DataRequired()])
    asn = IntegerField('asn', validators=[Optional()])
    ipv4 = StringField('ipv4',
                       validators=[
                           DataRequired(),
                           IPAddress(ipv4=True, ipv6=False, message=None)
                       ])
    ipv6 = StringField('ipv6',
                       validators=[
                           DataRequired(),
                           IPAddress(ipv4=False, ipv6=True, message=None)
                       ])
    prefixlimipv4 = IntegerField('prefixlimipv4',
                                 validators=[
                                     DataRequired(),
                                     NumberRange(min=1, max=None, message=None)
                                 ])
    prefixlimipv6 = IntegerField('prefixlimipv6',
                                 validators=[
                                     DataRequired(),
                                     NumberRange(min=1, max=None, message=None)
                                 ])
Ejemplo n.º 8
0
class EditHostForm(Form):
    '''admin edit host information'''
    hostname = StringField(u'主机名', validators=[Required(), Length(1, 64)])
    ip = StringField(u'IP', validators=[Required(), Length(0, 64), IPAddress()])
    eip = StringField(u'公网IP', validators=[Length(0, 64), IPAddress(), Optional()])
    system = StringField(u'系统', validators=[Required(), Length(1, 64)])
    cpu = IntegerField(u'CPU', validators=[Required(), NumberRange(min=1, max=50)])
    mem = IntegerField(u'内存', validators=[Required(), NumberRange(min=1, max=100)])
    disk = IntegerField(u'磁盘', validators=[NumberRange(min=0, max=5000)])
    groups = SelectField(u'所属项目组', coerce=int)
    idc = SelectField(u'所属机房', coerce=int)
    submit = SubmitField(u'更新')

    def __init__(self, host, *args, **kwargs):
        super(EditHostForm, self).__init__(*args, **kwargs)
        self.groups.choices = [(groups.id, groups.name)
                               for groups in Groups.query.order_by(Groups.name).all()]
        self.idc.choices = [(idc.id, idc.name)
                            for idc in IDC.query.order_by(IDC.name).all()]
        self.host = host

    def validate_ip(self, field):
        if field.data != self.host.ip and \
                Hosts.query.filter_by(ip=field.data).first():
            raise ValidationError('IP already exist.')

    def validate_eip(self, field):
        if field.data != self.host.eip and \
                Hosts.query.filter_by(eip=field.data).first():
            raise ValidationError('IP already bind to host.')
Ejemplo n.º 9
0
class EditorIp(FlaskForm):
    name_inter = SelectField('Name interface', coerce=str)
    new_addr = StringField('New ip', validators=[IPAddress('Should be ip address'), DataRequired('Please input ip address')])
    mask = StringField('New netmask', validators=[IPAddress('Should be netmask'), DataRequired('Please input mask address')])
    password = PasswordField('Password', validators=[DataRequired()])
    submit = SubmitField('Edit')
        
                    
Ejemplo n.º 10
0
class IPsAndTimezonesForm(FlaskForm):
    ip_master = StringField('IP address of the master host',
                            validators=[IPAddress()])
    ip_repo = StringField('IP address of the repo host',
                          validators=[IPAddress()])
    timezone = StringField('Timezone',
                           validators=[DataRequired()],
                           default="Europe/Madrid")
    submit = SubmitField('Next')
Ejemplo n.º 11
0
class LanCreateForm(FlaskForm):
    name = StringField('Название сети',
                       default='Сеть 1',
                       validators=[
                           Length(min=5, max=50),
                       ])

    svlan = IntegerField(
        'S-Vlan',
        default=1,
        validators=[
            NumberRange(
                min=1,
                max=3999,
                message=u'Вне диапазона доступных VLAN (1-3999)',
            ),
        ])

    netlan_ipv4 = StringField(
        'Сеть',
        default='192.168.0.0',
        validators=[
            IPAddress(ipv4=True, ipv6=False, message='Неверный IP адрес'),
        ],
    )

    netmask = SelectField(u'Маска',
                          default=24,
                          coerce=int,
                          choices=[
                              (24, u'/24 (255.255.255.0) - 254 Хоста'),
                              (23, u'/23 (255.255.254.0) - 510 Хостов'),
                              (22, u'/22 (255.255.252.0) - 1022 Хоста'),
                              (21, u'/21 (255.255.248.0) - 2046 Хоста'),
                              (20, u'/20 (255.255.240.0) - 4094 Хоста'),
                          ])

    gateway_ipv4 = StringField('Шлюз',
                               default='192.168.0.1',
                               validators=[
                                   IPAddress(ipv4=True,
                                             ipv6=False,
                                             message='Неверный IP адрес'),
                               ])

    dns_ipv4 = StringField('DNS',
                           default='192.168.0.1',
                           validators=[
                               IPAddress(ipv4=True,
                                         ipv6=False,
                                         message='Неверный IP адрес'),
                           ])

    submit = SubmitField('Сохранить')
Ejemplo n.º 12
0
class LANConfiguration(FlaskForm):
    my_choices = [('1', 'Static IP'), ('2', 'Dynamic IP (DHCP)')]
    ip_mode = SelectField('IP Mode',choices = my_choices)
    ip_address  = StringField(u'IP Address', validators=[IPAddress()])
    subnet_mask  = StringField(u'Subnet Mask', validators=[IPAddress()])
    #default_gateway_address  = StringField(u'Default Gateway Address', validators=[IPAddress(),Optional()])
    #primary_dns_ip_address  = StringField(u'Primary DNS IP Address', validators=[IPAddress(),Optional()])
    #secondary_dns_ip_address  = StringField(u'Secondary DNS IP Address', validators=[IPAddress(),Optional()])
    default_gateway_address  = StringField(u'Default Gateway Address', validators=[IPAddress()])
    primary_dns_ip_address  = StringField(u'Primary DNS IP Address', validators=[IPAddress()])
    secondary_dns_ip_address  = StringField(u'Secondary DNS IP Address', validators=[IPAddress()])
    submit = SubmitField('Update')
Ejemplo n.º 13
0
class ServiceWork(FlaskForm):
    region = QuerySelectField(query_factory=choice_region,
                              allow_blank=True,
                              blank_text="Выбирите регион")
    ip_addr_1 = StringField('IP address',
                            validators=[DataRequired(),
                                        IPAddress()])
    ip_addr_2 = StringField('IP address', validators=[Optional(), IPAddress()])
    reg_id = StringField('RegID', validators=[DataRequired()])
    serial_num = StringField('Serial number', validators=[DataRequired()])
    setup = BooleanField('Настроить')
    submit = SubmitField('Добавить')
Ejemplo n.º 14
0
class EthernetConfigureForm(Form):
    ethernet_device = HiddenField()
    connection_type = RadioField(u'Connection Type',
                                 choices=[('static', 'Static'),
                                          ('dhcp', 'DHCP')],
                                 default='dhcp',
                                 coerce=str)
    ip_address = TextField('IP Address', [IPAddress('Invalid IP Address')])
    gateway = TextField('Default Gateway',
                        [IPAddress('Invalid Gateway IP Format')])
    netmask = TextField('Subnet Mask', [IPAddress('Invalid Subnet IP Format')])
    submit = SubmitField(u'Save')
    cancel = ButtonField(u'Cancel', onclick="location.href='/settings/host'")
Ejemplo n.º 15
0
def add_hosts():
    '''Add Hosts Page'''
    form = AddHostsForm()
    if request.method == 'GET':
        return render_template('addHosts.html', form=form)
    elif request.method == 'POST':
        if form.validate_on_submit():
            pool = ThreadPool(config['Max_Threads'])
            threads = []
            for ip_address in form.ip_address.data.split('\n'):
                ip_address = ip_address.strip()
                validator = IPAddress(ipv4=True)

                if not validator.check_ipv4(ip_address):
                    flash('{} Is not a valid IP address'.format(ip_address),
                          'danger')
                    continue

                if Hosts.query.filter_by(ip_address=ip_address).first():
                    flash('IP Address {} already exists.'.format(ip_address),
                          'danger')
                    continue

                threads.append(
                    pool.apply_async(_add_hosts_threaded, (ip_address, )))

            pool.close()
            pool.join()
            for thread in threads:
                new_host = thread.get()
                try:
                    # add the new host to the database
                    db.session.add(new_host)
                    flash(
                        u'Successfully added {} ({})'.format(
                            new_host.ip_address, new_host.hostname), 'success')
                except Exception as exc:
                    flash(u'Failed to add {}'.format(new_host.ip_address),
                          'danger')
                    log.error(
                        'Failed to add {} to database. Exception: {}'.format(
                            new_host, exc))
                    continue

            db.session.commit()
        else:
            for dummy, errors in form.errors.items():
                for error in errors:
                    flash(error, 'danger')

        return redirect(url_for('hosts.add_hosts'))
Ejemplo n.º 16
0
class IpPoolForm(Form):
    start_ip = StringField(u'起始IP',
                           validators=[
                               Required(message=u'起始IP不能为空'),
                               IPAddress(message=u'起始IP应该是一个IP格式')
                           ])
    end_ip = StringField(
        u'结束IP', validators=[Regexp(re_ip_one, message=u'结束IP应为0-255')])
    netmask = StringField(u'子网掩码',
                          validators=[
                              Required(message=u'子网掩码不能为空'),
                              IPAddress(message=u'子网掩码应该是一个IP格式')
                          ])
    gateway = StringField(u'网关地址',
                          validators=[
                              Required(message=u'网关地址不能为空'),
                              IPAddress(message=u'网关地址应该是一个IP格式')
                          ])
    subnet = StringField(u'IP子网',
                         validators=[
                             Required(message=u'IP子网不能为空'),
                             IPAddress(message=u'ip子网应该是一个IP格式')
                         ])
    site = StringField(u'所属机房',
                       validators=[
                           Required(message=u'所属机房不能为空'),
                           Length(1, 64, message=u'机房名为1-64个字符')
                       ])
    client = StringField(u'使用用户',
                         validators=[Length(0, 64, message=u'使用用户最大为64个字符')])
    remark = StringField(u'备注',
                         validators=[Length(0, 64, message=u'备注最大64个字符')])

    def validate_end_ip(self, field):
        start_ip = self.start_ip.data
        if int(start_ip.split('.')[-1]) > int(field.data):
            raise ValidationError(u'添加失败 结束IP应该大于起始IP')

    def validate_subnet(self, field):
        if not IpSubnet.query.filter_by(subnet=field.data).first():
            raise ValidationError(u'添加失败 这个子网不存在')

    def validate_site(self, field):
        if not Site.query.filter_by(site=field.data).first():
            raise ValidationError(u'添加失败 这个机房不存在')

    def validate_client(self, field):
        if field.data:
            if not Client.query.filter_by(username=field.data).first():
                raise ValidationError(u'添加失败 这个客户不存在')
Ejemplo n.º 17
0
class DeviceForm(FlaskForm):
    id = HiddenField()
    #  deviceType = SelectField(u'设备类型', coerce=int)
    #  deviceTypeId = SelectField(u'设备信息', coerce=int)
    serialNo = StringField(u'序列号', validators=[Length(max=64)])
    designedPower = StringField(u'功率', validators=[Length(max=64)])
    purchaseDate = DateField(u'购买日期')
    warrantyTime = DateField(u'保修时间')
    ip = StringField(u'ipv4 ip', validators=[IPAddress(ipv4=True)])
    ip2 = StringField(u'ipv4 ip2', validators=[IPAddress(ipv4=True)])
    position = StringField(u'位置', validators=[Length(max=32)])
    carbinet_id = SelectField(u'机柜', coerce=int)
    comment = StringField(u'备注', validators=[Length(max=1024)])
    submit = SubmitField(u'提交')
Ejemplo n.º 18
0
 def __call__(self, form, field):
     try:
         try_mac = MacAddress(message=self.message)
         try_mac(form, field)
     except ValidationError:
         try_ip = IPAddress(message=self.message)
         try_ip(form, field)
Ejemplo n.º 19
0
class SnatForm(Form):
    source = TextField(u'需转换的源IP(或网段)',
                       validators=[Required(message=u'这是一个必选项!'),
                                   IPorNet(message=u"无效的IP 或网段!")])
    gateway = TextField(u'转换后的IP',
                        validators=[Required(message=u'这是一个必选项!'),
                                    IPAddress(message=u'无效的IP 地址!')])
Ejemplo n.º 20
0
class UnAssignFloatingIP(Form):
    floatingip = StringField(
        'Floating IP', validators=[Required(),
                                   Length(1, 128),
                                   IPAddress()])
    server = StringField('Server')
    submit = SubmitField()
Ejemplo n.º 21
0
class SyncPoolForm(ConfigForm):
    legend = 'Sync Pool'
    config = ykval_config
    attrs = {
        'sync_pool': {
            'rows': 5,
            'class': 'input-xxlarge'
        },
        'allowed_sync_pool': {
            'rows': 5,
            'class': 'input-xxlarge'
        }
    }

    sync_pool = ListField('Sync Pool URLs', [URL()],
                          description="""
        List of URLs to other servers in the sync pool.
        Example: <code>http://example.com/wsapi/2.0/sync</code>
        """)
    allowed_sync_pool = ListField('Allowed Sync IPs', [IPAddress()],
                                  description="""
        List of IP-addresses of other servers that are allowed to sync with
        this server.
        Example: <code>10.0.0.1</code>
        """)

    def save(self):
        super(SyncPoolForm, self).save()
        if is_daemon_running():
            invoke_rc_d('ykval-queue', 'restart')
Ejemplo n.º 22
0
class BGPPeer(Form):
    ip_address = StringField('IP Address',
                             validators=[Required(), IPAddress()])
    asn = StringField('AS Number', validators=[Required(), Range(1, 65535)])
    enabled = BooleanField('Enabled')
    submit = SubmitField('Save')
    submit = SubmitField('Save')
Ejemplo n.º 23
0
class DevicesConfigStaticRoute(FlaskForm):
    id = StringField('ID')
    ip_destino = StringField('IP Destino', validators=[IPAddress(
        ipv4=True, ipv6=False, message='IP Destino: IP invalida')])
    mascara = StringField('Mascara', validators=[DataRequired(message='Si o Si debe ingresar un numero de AS'), Length(
        min=7, max=15, message='Mascara: debe tener un minimo de 5 y un maximo de 15 caracteres')])
    next_hop = StringField('Next Hop', validators=[InputRequired(message='Ingrese IP correcta!')])
Ejemplo n.º 24
0
class RouterNewForm(FormPro):
    cityid = SelectFieldPro(u'所属地市', choices=lambda: area_choices(1, u'请选择地市'))
    town = SelectFieldPro(u'', choices=lambda: area_choices(2, u'请选择区县'))
    area_id = SelectFieldPro(u'所属区域',
                             validators=[required(message=u'必填')],
                             choices=lambda: area_choices(4, u'请选择接入点'))
    name = TextField(u'路由器名称', validators=[required(message=u'必填')])
    alias = TextField(u'路由器别名', validators=[required(message=u'必填')])
    addr = TextField(u'IP 地址',
                     validators=[
                         required(message=u'必填'),
                         IPAddress(message=u'IP地址格式不正确'),
                         NoneOf(['0.0.0.0', '255.255.255.255'],
                                message=u'IP地址格式不正确')
                     ])
    snmp_comm = TextField(u'读团体名', validators=[required(message=u'必填')])
    snmp_wcomm = TextField(u'写团体名', validators=[required(message=u'必填')])
    snmp_ver = RadioField(u'SNMP版本',
                          default=SNMP_VER_DICT.keys()[0],
                          validators=[required(message=u'必填')],
                          choices=[(value, label)
                                   for value, label in SNMP_VER_DICT.items()])
    mask = TextField(u'子网掩码')
    location = TextField(u'位置')
    remark = TextAreaField(u'备注信息')
Ejemplo n.º 25
0
class ConfigForm(FlaskForm):
    ssid = StringField('Network Name', validators=[DataRequired()])
    password = PasswordField('Password', validators=[DataRequired()])
    email = EmailField('Email address', validators=[DataRequired(), Email()])
    ip_address = StringField('Server IP address',
                             validators=[Optional(), IPAddress()])
    submit = SubmitField('Submit')
Ejemplo n.º 26
0
class DeviceAddForm(FlaskForm):
    designation = StringField('Designation',
                              validators=[DataRequired(),
                                          Length(max=50)],
                              render_kw={"placeholder": "Designation"})
    description = TextAreaField('Description',
                                validators=[Length(max=200)],
                                render_kw={
                                    "placeholder": "Desription",
                                    "cols": "50",
                                    "rows": "3"
                                })
    src_ip = StringField('Source IP address',
                         validators=[DataRequired(),
                                     IPAddress()],
                         render_kw={"placeholder": "IP address"})
    src_port = IntegerField(
        'Source IP port',
        validators=[DataRequired(),
                    NumberRange(min=1, max=65535)],
        render_kw={"placeholder": "IP port"})
    dest_uri = StringField('Destination URL',
                           validators=[DataRequired(), URL()],
                           render_kw={"placeholder": "Destination URL"})
    dest_format = StringField('Destination format',
                              render_kw={"placeholder": "Format"})
    rdg_interval = IntegerField('Reading interval',
                                validators=[DataRequired()],
                                render_kw={"placeholder": "Interval [min]"})
Ejemplo n.º 27
0
Archivo: form.py Proyecto: mmspide/wahh
class ConfigIp(FlaskForm):
    action = SelectField('操作参数', choices=(['get', 'get'], ['set', 'set'], ['delete', 'del'],
                                          ['save', 'save'], ['add', 'add']))
    ip = StringField('IP地址', default='0.0.0.0', validators=[IPAddress()])

    valid_time = IntegerField('生效时长(s)')
    value = SelectField('Waf_Action', choices=(['deny', 'deny'], ['allow', 'allow']))
Ejemplo n.º 28
0
class TodoForm(Form):
    style = RadioField(u'Lable',
                       choices=[('realtime', u"实时构建(较耗时)"),
                                ('notrealtime', u'缓存构建(分支、版本号不可修改)')],
                       default='notrealtime',
                       validators=[DataRequired()])
    choice = StringField('''fiber_fault:    -> a
                            data_cvt:       -> b
                            data_mgt:       -> c
                            ui_int:         -> d
                            hadoop:         -> e
                            aabd            -> k
                            spark           -> l
                            model_mgt       -> m
                            omc_alarm       -> n
                            capacity_prediction_mgt -> o''',
                         validators=[DataRequired(),
                                     Regexp("\w*")])
    hosts = StringField(
        u'目标ip:',
        validators=[IPAddress(ipv4=True, message=u"格式错误"),
                    DataRequired()])
    version = StringField(u'版本号:(0.0.x格式)',
                          validators=[DataRequired()],
                          default='0.0.%s' %
                          time.strftime("%Y%m%d", time.localtime()))
    branch = StringField(u'Git分支:', validators=[DataRequired()], default='dev')
    submit = SubmitField('Submit')
Ejemplo n.º 29
0
class QueryLogsForm(Form):
    date1 = My_DateField(u'开始日期')
    date2 = My_DateField(u'结束日期')
    user_operation = StringField(u'操作员')
    loginip = StringField(u'登陆IP',
                          validators=[IPAddress(message=u'IP地址格式不对,请检查')])
    operration_type = SelectField(u'操作类型', coerce=str)
    remarks = StringField(u'备注')  # 备注
    submit = SubmitField(u'查询')

    def __init__(self, *args, **kwargs):
        super(QueryLogsForm, self).__init__(*args, **kwargs)
        log_ = [('', '全部')]
        log1_ = ()
        logtype = LogType.__dict__  # 获取日志类型字典
        for logs in dir(LogType):  # 清除系统类型的属性
            if '__' in logs:
                logtype.pop(logs)
            else:
                log1_ = (logtype[logs], ' ›' + logtype[logs]
                         )  # 将类型字典转换成列表元组,只取字典的值作为2个参数
                log_.append(log1_)
        logtype = log_
        self.operration_type.choices = logtype
        pass

    def validate_date1(self, field):
        if self.date2.data < field.data:
            raise ValidationError(u'结束日期不能小于开始日期,请检查日期!')
Ejemplo n.º 30
0
class CredentialsForm(Form):
    ipaddr = StringField('APIC IP Address:',
                         validators=[Required(), IPAddress()])
    secure = BooleanField('Use secure connection', validators=[])
    username = StringField('APIC Username:'******'APIC Password:'******'Save')