Beispiel #1
0
class FeedbackForm(BaseForm):
    """反馈问题form"""
    type = IntegerField(
        label='反馈类型',
        validators=[validators.DataRequired(message='反馈类型必须输入!')])

    content = simple.TextAreaField(
        label='反馈内容',
        validators=[validators.DataRequired(message='反馈内容必须输入!')])

    contact = simple.StringField(label='联系方式', validators=[Optional()])

    feedbackImages = simple.StringField(label='反馈图片',
                                        validators=[
                                            Optional(),
                                        ])

    def validate_type(self, type):
        try:
            FeedbackType.query.filter(FeedbackType.id == type.data).one()
        except NoResultFound:
            raise validators.StopValidation('不存在该分类!')
        except MultipleResultsFound:
            raise validators.StopValidation('不存在该分类!')

    def validate_feedbackImages(self, images):
        if images.data:
            for i in images.data:
                if not re.match(
                        'http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+',
                        i):
                    raise validators.StopValidation('图片不符合规则!')
Beispiel #2
0
class ArticleForm(BaseForm):
    handlemod = core.RadioField(label='选择操作类型',
                                choices=(
                                    (1, '恢复链接'),
                                    (2, '删除链接'),
                                ),
                                validators=[DataRequired()],
                                coerce=int)
    urls = simple.StringField(
        label="链接地址",
        validators=[DataRequired()],
    )
    remark = simple.StringField(label="备注", )
    relation = core.RadioField(label='是否关联3g网及分页',
                               choices=(
                                   (1, '关联'),
                                   (2, '不关联'),
                               ),
                               validators=[DataRequired()],
                               coerce=int)
    username = simple.StringField(label='用户名', validators=[DataRequired()])

    def validate_urls(self, field):
        try:
            for url in field.data.split():
                if not re.match('^http://', url):
                    raise ParameterException(url + '链接地址请以http://开头')
                parse = urlparse(url)
                if not re.search("test.com$", parse.netloc):
                    raise ParameterException(msg="只接收test.com域名下的链接")
        except:
            raise ParameterException("urls参数格式错误" + traceback.format_exc())
class RegistrationForm(Form):
    username = simple.StringField(
        label='Username',
        widget=widgets.TextInput(),
        validators=[
            validators.DataRequired(message="Username can not be empty"),
            validators.Length(6, 40, 'Need to be more than 6 characters')
        ])
    password = simple.PasswordField(
        label='Password',
        widget=widgets.PasswordInput(),
        validators=[
            validators.DataRequired(message='Password can not be empty'),
            validators.Length(6, 40, 'Need to be more than 6 characters')
        ])
    password2 = simple.PasswordField(
        label='Repeat Password',
        widget=widgets.PasswordInput(),
        validators=[
            validators.DataRequired(message='Password can not be empty'),
            validators.EqualTo('password', message='Two password not same')
        ])
    email = simple.StringField(
        label='Email',
        widget=widgets.TextInput(),
        validators=[
            validators.DataRequired(message='Email can not be empty'),
            validators.Email(message='Wrong Email Syntax')
        ])
    submit = simple.SubmitField(label='Submit', widget=widgets.SubmitInput())
Beispiel #4
0
class UserForm(Form):
    userName = simple.StringField(
        label="用户名",
        validators=[
            validators.DataRequired(message="用户名必须填写!"),
            validators.length(min=6, max=20, message="用户名应在6-20位之间!")
        ],
    )
    pwd = simple.PasswordField(label="密码",
                               validators=[
                                   validators.DataRequired(message="密码不能为空"),
                                   validators.Regexp(
                                       '^(?:(?=.*[A-Za-z])(?=.*[0-9])).{5,}$',
                                       message='密码应最少6位,由字母和数字的组成!')
                               ])
    nickName = simple.StringField(
        label='昵称',
        validators=[
            validators.DataRequired(message="昵称必须填写!"),
            validators.length(max=20, message="用户名不得大于20位!")
        ])

    def validate_userName(self, userName):
        if User.query.filter(User.userName == userName.data).first():
            raise validators.StopValidation("用户已被注册!")
Beispiel #5
0
class RegForm(Form):
    username = simple.StringField(label="用户名:",
                                  validators=[
                                      validators.Length(
                                          min=4,
                                          max=10,
                                          message="用户名不能小于%(min)d,不能大于%(max)d")
                                  ])

    password = simple.PasswordField(
        label="密码:",
        validators=[
            validators.Length(max=10,
                              min=6,
                              message="password不能小于%(min)d,不能大于%(max)d")
        ])

    repassword = simple.PasswordField(
        label="确认眼神:",
        validators=[validators.EqualTo("password", message="眼神未确认")])
    email = simple.StringField(label="邮箱",
                               validators=[validators.Email(message="邮箱格式不符")])

    gender = core.RadioField(label="性别:",
                             choices=[(1, "女"), (2, "男")],
                             coerce=int)

    hobby = core.SelectMultipleField(label="嗜好",
                                     choices=[(1, "小姐姐"), (2, "小萝莉"),
                                              (3, "小正太"), (4, "小哥哥")],
                                     coerce=int)

    sub = simple.SubmitField(label="登陆", render_kw={"class": "bs"})
Beispiel #6
0
class RegForm(Form):
    username = simple.StringField(
        label="用户名",
        validators=[
            validators.DataRequired(message="用户名不能为空"),
            validators.Length(min=6, max=16, message="用户名必须大于等于6,小于等于16")
        ],
        render_kw={"class": "my_class"})

    password = simple.PasswordField(
        label="密码",
        validators=[
            validators.DataRequired(message="密码不能为空"),
            validators.Length(min=6, max=16, message="密码必须大于等于6,小于等于16")
        ])

    repassword = simple.PasswordField(
        label="确认密码",
        validators=[
            validators.DataRequired(message="确认密码不能为空"),
            validators.EqualTo("password", message="两次密码不一致")
        ])
    # widget=widgets.RadioInput(),
    gender = core.RadioField(label="性别",
                             choices=((0, "女"), (1, "男")),
                             default=1,
                             render_kw={"class": "my_class"},
                             coerce=int)

    email = simple.StringField(label="邮箱",
                               validators=[
                                   validators.DataRequired(message="邮箱不能为空"),
                                   validators.Email(message="不符合规定")
                               ])
Beispiel #7
0
class WebUrlForm(BaseForm):
    handlemod = core.RadioField(label='选择操作类型',
                                choices=(
                                    (1, '恢复链接'),
                                    (2, '删除链接'),
                                ),
                                validators=[DataRequired()],
                                coerce=int)
    weburls = simple.StringField(
        label="链接地址",
        widget=widgets.TextArea(),
        render_kw={
            "placeholder": "输入页面url地址以换行分隔",
            "rows": 10,
            'class': 'form-control'
        },
        validators=[DataRequired()],
    )
    imagexpath = simple.StringField(label="获取图片的xpath规则",
                                    widget=widgets.TextInput(),
                                    render_kw={
                                        "placeholder": "爬取图片的xpath规则,不懂可以不填",
                                        "value": "//center//img/@src",
                                        'class': 'form-control'
                                    })

    pages = BooleanField(label="是否关联分页")
    remark = simple.StringField(label="备注",
                                widget=widgets.TextInput(),
                                render_kw={
                                    "placeholder": "本次操作说明,可不填写。",
                                    'class': 'form-control'
                                })
Beispiel #8
0
class ConfigForms(BaseForm):
    name = simple.StringField(label="配置名称",
                              validators=[DataRequired()],
                              render_kw={'class': 'form-control'})

    config = simple.StringField(label="详细配置",
                                widget=widgets.TextArea(),
                                render_kw={
                                    "placeholder": "JSON格式的配置信息",
                                    "rows": 10,
                                    'class': 'form-control'
                                },
                                validators=[DataRequired()])

    remark = simple.StringField(label="备注",
                                render_kw={
                                    "placeholder": "可不填写。",
                                    'class': 'form-control'
                                })

    def validate_config(self, field):
        try:
            json.loads(field.data)
        except:
            raise validators.ValidationError("json格式错误" +
                                             traceback.format_exc())
class RegisterForm(FlaskForm):
    username = simple.StringField(label="请输入用户名:",
    validators=[
        validators.DataRequired(message="用户名不能为空"),
        validators.Length(min=6, max=18, message='用户名长度必须大于%(min)d,且小于%(max)d')
    ],
    widget=widgets.TextInput(),render_kw={"class":"form-control"}
    )
    password = simple.StringField(label="请输入密码:",
    validators=[
        validators.DataRequired(message="密码不能为空"),
        validators.Length(min=8,message="密码至少%(min)d位"),
        validators.Regexp(regex="^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)"
                                "[A-Za-z\d~!@#$%^&*()_+]{8,}",
                          message="密码至少包含1个小写和大写字母以及1个数字")
    ],
    widget=widgets.PasswordInput(),render_kw={"class":"form-control"})
    # 确认密码
    password2 = simple.StringField(label="请确认密码:",
    validators=[
        validators.DataRequired(message="请确认您的密码"),
        EqualTo("password",message="两次密码输入不一致")
    ],
    widget=widgets.PasswordInput(),render_kw={"class":"form-control",
                                              "placeholder":"确认密码"}
    )
Beispiel #10
0
    class ProjectAddForm(form.Form):
        name = simple.StringField(
            label=u'名称',
            validators=[validators.DataRequired(message=u'名称不能为空')],
            render_kw={'class': 'form-control', 'placeholder': u'项目名称'}
        )
        title = simple.StringField(
            label=u'描述',
            validators=[validators.DataRequired(message=u'描述不能为空')],
            render_kw={'class': 'form-control', 'placeholder': u'项目描述'}
        )

        repository = simple.StringField(
            label=u'地址',
            validators=[validators.DataRequired(message=u'地址不能为空')],
            render_kw={'class': 'form-control', 'placeholder': u'项目地址'}
        )
        hosts = core.SelectMultipleField(
            label=u'主机',
            choices=(),
            coerce=int,
            render_kw={'class': 'form-control'}
        )

        def __init__(self, *args, **kwargs):
            super(ProjectAddForm, self).__init__(*args, **kwargs)

            self.hosts.choices = db.session.query(models.Host.id, models.Host.hostname).all()
Beispiel #11
0
class AddCmpInfoForm(FlaskForm):
    name = simple.StringField(
        label="公司名称",
        validators=[
            validators.DataRequired(
                message="用户名不能为空"),  # 必填项检查 message 为返回的错误内容
            validators.length(max=20)
        ],
        widget=widgets.TextInput(),
        render_kw={"class": "name"})

    location = simple.StringField(
        label="公司地址",
        validators=[
            validators.DataRequired(
                message="用户名不能为空"),  # 必填项检查 message 为返回的错误内容
            validators.length(max=20)
        ],
        widget=widgets.TextInput(),
        render_kw={"class": "location"})

    submit = simple.SubmitField(
        label="提交",
        render_kw={
            "class": "btn",
        },
    )
Beispiel #12
0
class UserRegForm(Form):
    name = simple.StringField(
            label='用户名',
            widget=widgets.TextInput(),
    )
    xxx = simple.StringField(
            label='测试字段',
            widget=widgets.TextInput(),
    )
Beispiel #13
0
class ProjectForm2(Form):
    project_name = simple.StringField(
        label="Project name*",
        widget=widgets.TextInput(),
        validators=[
            validators.DataRequired(message="project name cannot be empty"),
            validators.Length(
                max=50,
                min=1,
                message="The length of username should between 1 and 50"),
            validators.Regexp('^[a-zA-Z0-9_.-]*$',
                              flags=0,
                              message="must be characters or digits only.")
        ],
        render_kw={"class": "form-control"})

    project_des = simple.StringField(
        label="Project description (optional)",
        widget=widgets.TextInput(),
        validators=[
            validators.Length(
                max=50,
                min=0,
                message="The length of username should between 0 and 50")
        ],
        render_kw={"class": "form-control"})

    data1 = FileField(u'Data File 1 (csv)*',
                      render_kw={"class": "custom-file-input"},
                      validators=[validators.Optional()])
    data2 = FileField(u'Data File 2 (csv)*',
                      render_kw={"class": "custom-file-input"},
                      validators=[validators.Optional()])

    blocking_choices = [('id', 'ID'), ('fn', 'Firstname'), ('ln', 'Lastname'),
                        ('bd', 'DoB'), ('gd', 'Gender'), ('rc', 'Race')]
    blocking = SelectMultipleField(
        'Blocking*',
        choices=blocking_choices,
        render_kw={"class": "form-control selectpicker"})
    '''
    assignto = SelectField(
        u'Assign to', 
        choices=[], 
        render_kw={"class":"form-control selectpicker", "data-live-search": "ture"}
    )
    kapr = FloatField('Privacy budget', [validators.NumberRange(min=0, max=100, message="Please enter a valid value.")], render_kw={"class":"form-control"})
    '''

    assignee_area = TextAreaField(
        u'Assignee', [validators.optional(),
                      validators.length(max=200)],
        render_kw={
            "class": "form-control",
            "id": "assignee_area"
        })
Beispiel #14
0
class LoginForm(Form):
    username = simple.StringField(
        label="用户名",
        validators=[validators.data_required(message="用户名不能为空")],
        widget=widgets.TextInput(),
        render_kw={"class": "my_username"})
    password = simple.StringField(
        label="密码",
        validators=[validators.data_required(message="密码不能为空!")],
        widget=widgets.PasswordInput())
    submit = simple.SubmitField(label="提交")
Beispiel #15
0
class addForm(FlaskForm):
    language = core.SelectField(
        label='基础环境镜像:',
        choices=language_choices(),
    )
    pluginname = simple.StringField(
        label='接口名称: ',
        widget=widgets.TextInput(),
        # validators=[DataRequired(message='接口名称不能为空'),
        #                         NoneOf(['t1', 't2', 't10', '3'], message='wuxiao', values_formatter = 'caonima')]
        # render_kw={
        #     "placeholder":"请输入账号!",
        #     "required":'required'               #表示输入框不能为空,并有提示信息
        # }
    )
    inputfilename = simple.StringField(
        label='输入文件名: ',
        widget=widgets.TextInput(),
        # validators=[DataRequired()]
    )
    inputtype = core.SelectMultipleField(
        label='输入数据类型:',
        choices=(('txt', 'txt'), ('world', 'world'), ('jpg', 'jpg'), ('png',
                                                                      'png')),
        default=['txt', 'world', 'jpg', 'png'])
    outputfilename = simple.StringField(label='输出文件名:',
                                        widget=widgets.TextInput())
    outputtype = core.SelectMultipleField(
        label='输出数据类型:',
        choices=(('txt', 'txt'), ('world', 'world'), ('jpg', 'jpg'), ('png',
                                                                      'png')),
        option_widget=widgets.CheckboxInput(),
        default=['txt', 'world', 'jpg', 'png'])
    sources = core.SelectField(label='软件源:',
                               render_kw={'class': 'index-select'},
                               choices=sources_choices())
    textarea = TextAreaField(
        label='接口运行环境:',
        render_kw={'class': 'text-control'},
        # validators=[DataRequired()]
    )
    pluginfile = FileField(
        label='文件选择:',
        # validators=[FileRequired(),
        #                         FileAllowed(['jpg','jpeg','png','gif'])]
    )
    runCommand = simple.StringField(label='运行命令:', widget=widgets.TextInput())
    detail = TextAreaField(
        label='接口描述:',
        render_kw={'class': 'text-detail'},
        # validators=[DataRequired()]
    )
    save = simple.SubmitField('检查')
    pulish = simple.SubmitField('提交')
Beispiel #16
0
class LoginEmailForm(Form):
    email = simple.StringField(label='邮箱',
                               validators=[
                                   validators.Length(8, 64, message='邮箱格式不正确'),
                                   validators.DataRequired(message="邮箱必须填写!"),
                                   validators.Email(message='这不是一个正确的邮箱格式'),
                               ])
    code = simple.StringField(label='验证码',
                              validators=[
                                  validators.Length(6, 6, message='验证码不正确'),
                                  validators.DataRequired(message="验证码未填写!"),
                              ])
Beispiel #17
0
class EmailForm(Form):
    """发送邮箱验证码form"""
    user = simple.StringField(label='用户')
    email = simple.StringField(label='邮箱',
                               validators=[
                                   validators.Length(8, 64, message='邮箱格式不正确'),
                                   validators.DataRequired(message="邮箱必须填写!"),
                                   validators.Email(message='这不是一个正确的邮箱格式'),
                               ])

    def validate_email(self, email):
        self.user.data = User.query.filter(
            and_(User.email == email.data, User.is_email)).first()
        if not self.user.data:
            raise validators.StopValidation("邮箱用户不存在!")
Beispiel #18
0
class LoginForm(Form):
    # 字段(内部包含正则表达式)
    name = simple.StringField(
        label='用户名',
        validators=[
            # 内部校验器
            validators.DataRequired(message='用户名不能为空.'),
            validators.Length(min=2,
                              max=18,
                              message='用户名长度必须大于%(min)d且小于%(max)d')
        ],
        # 页面的显示插件
        widget=widgets.TextInput(),
        # 给插件添加的属性
        # render_kw={'class': 'form-control'}
    )
    # pwd = html5.EmailField() # 可以使用html5的验证方式
    pwd = simple.PasswordField(
        label='密码',
        validators=[
            validators.DataRequired(message='密码不能为空.'),
            validators.Length(min=2, message='用户名长度必须大于%(min)d'),
        ],
        widget=widgets.PasswordInput(),
        # render_kw={'class': 'form-control'}
    )
Beispiel #19
0
class LoginForm(Form):
    # 字段(内部包含正则表达式)
    name = simple.StringField(
        label='用户名',
        validators=[
            validators.DataRequired(message='用户名不能为空.'),
            validators.Length(min=6,
                              max=18,
                              message='用户名长度必须大于%(min)d且小于%(max)d')
        ],
        widget=widgets.TextInput(),  # 页面上显示的插件
        render_kw={'class': 'form-control'})
    # 字段(内部包含正则表达式)
    pwd = simple.PasswordField(
        label='密码',
        validators=[
            validators.DataRequired(message='密码不能为空.'),
            validators.Length(min=8, message='用户名长度必须大于%(min)d'),
            validators.Regexp(
                regex=
                "^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]{8,}",
                message='密码至少8个字符,至少1个大写字母,1个小写字母,1个数字和1个特殊字符')
        ],
        widget=widgets.PasswordInput(),
        render_kw={'class': 'form-control'})
Beispiel #20
0
class RegisterForm(Form):
    phone = simple.StringField(validators=[
        validators.DataRequired(message="手机号不能为空"),
        validators.Length(max=11, min=7, message="手机号长度不对请输入正确的手机号")
    ],
                               widget=widgets.TextInput())
    username = simple.StringField(validators=[
        validators.DataRequired(message="用户名不能为空"),
        validators.Length(max=20, message="用户名长度不能超过20")
    ],
                                  widget=widgets.TextInput())
    password = simple.PasswordField(validators=[
        validators.DataRequired(message="密码不能为空"),
        validators.Length(max=16, min=6, message="密码长度应在6~16之间")
    ],
                                    widget=widgets.PasswordInput())
Beispiel #21
0
class LoginForm(Form):
    user = simple.StringField(label='用户名',
                              validators=[
                                  validators.DataRequired(message='用户名不能为空.'),
                                  validators.Length(
                                      min=2,
                                      max=18,
                                      message='用户名长度必须大于%(min)d且小于%(max)d')
                              ],
                              widget=widgets.TextInput(),
                              render_kw={
                                  'class': 'form-control',
                                  'placeholder': '用户名'
                              })
    pwd = simple.PasswordField(
        label='密码',
        validators=[
            validators.DataRequired(message='密码不能为空.'),
            validators.Length(min=8, message='用户密码长度必须大于%(min)d'),
            # validators.Regexp(regex="^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]{8,}",
            #                   message='密码至少8个字符,至少1个大写字母,1个小写字母,1个数字和1个特殊字符')
        ],
        widget=widgets.PasswordInput(),
        render_kw={
            'class': 'form-control',
            'placeholder': '密码'
        })
Beispiel #22
0
class LoginForm(Form):
    username = simple.StringField(
        label="用户名:",
        widget=widgets.TextInput(),
        validators=[
            validators.DataRequired(message="用户名不能为空"),
            validators.Length(min=4,
                              max=10,
                              message="用户名不能小于%(min)d,不能大于%(max)d")
        ],  # 声明校验方式
        id="username",
        #widget=widgets.FileInput(),
        render_kw={"class": "my_class"},
    )

    password = simple.PasswordField(
        label="密码:",
        validators=[
            validators.Length(max=10,
                              min=6,
                              message="password不能小于%(min)d,不能大于%(max)d"),
            validators.Regexp("\d+", message="密码只能是数字")
        ],
        id="pwd",
        render_kw={"style": "width:300px;"})

    sub = simple.SubmitField(label="登陆", render_kw={"class": "bs"})
Beispiel #23
0
class LoginForm(Form):
    '''Form'''
    name = simple.StringField(
        label="Username",
        widget=widgets.TextInput(),
        validators=[
            validators.DataRequired(message="username cannot be empty"),
            validators.Length(
                max=20,
                min=5,
                message="The length of username should between 5 and 20")
        ],
        render_kw={"class": "form-control"})

    pwd = simple.PasswordField(
        label="password",
        validators=[
            validators.DataRequired(message="password cannot be empty"),
            validators.Length(
                max=30,
                min=5,
                message="The length of password should between 5 and 30"),
        ],
        widget=widgets.PasswordInput(),
        render_kw={"class": "form-control"})
Beispiel #24
0
class RoomCreateForm(Form):
    roomname = simple.StringField(
        validators=[
            validators.DataRequired(message='房間名不能为空.'),
            validators.Length(min=2, message='房間名长度必须大于%(min)d'),
        ],
        widget=widgets.TextInput(),
    )
Beispiel #25
0
class SearchForm(Form):
    content = simple.StringField(
        label="",
        widget=widgets.TextInput(),
        validators=[
            validators.DataRequired(message="请输入搜索内容")],
        render_kw={"class": "form-control"}  # 设置属性生成的html属性
    )
Beispiel #26
0
class EditConfigForms(ConfigForms):

    name = simple.StringField(label="配置名称",
                              validators=[DataRequired()],
                              render_kw={
                                  'class': 'form-control',
                                  'readonly': 'ture'
                              })
Beispiel #27
0
class UpdateInfoForm(Form):
    username = simple.StringField(
        label='用户名',
        validators=[
            validators.DataRequired(message='用户名不能为空'),
            validators.Length(min=3,
                              max=18,
                              message='用户名长度必须大于%(min)d, 并且小于%(max)d'),
        ],
        widget=widgets.TextInput(),
        render_kw={'class': 'form-control'})
    age = simple.StringField(label='用户年龄',
                             widget=widgets.TextInput(),
                             render_kw={'class': 'form-control'})
    hometown = simple.StringField(label='用户居住城市',
                                  widget=widgets.TextInput(),
                                  render_kw={'class': 'form-control'})
Beispiel #28
0
class LoginForm(Form):
    name = simple.StringField(
        validators=[  # 验证
            validators.DataRequired(message='用户名不能为空'),
            validators.length(min=6, max=18, message='用户名长度必须大于6小于18')
        ],
        widget=widgets.TextArea(),  # 插件
        render_kw={'placeholder': '请输入用户名'},
    )
Beispiel #29
0
class Userforms(Form):
    id = simple.StringField()
    service = core.SelectField(choices=(), )

    def __init__(self, *args, **kwargs):
        super(Userforms, self).__init__(*args, **kwargs)
        conn = DataBase()
        self.service.choices = conn.get_all(
            "select * from userform", [])  # 数据变化时,动态更新前端数据. 类的静态字段初始化时生产.
Beispiel #30
0
class NodesInfo(Form):
    host = simple.StringField(
        label='地址',
        validators=[
            validators.DataRequired()
        ],
        widget=widgets.TextInput(),
        render_kw={'class': 'form-control', 'placeholder': '例如:192.168.0.1', 'style': 'width: 250px'}
        )

    port = simple.StringField(
        label='端口',
        validators=[
            validators.DataRequired()
        ],
        widget=widgets.TextInput(),
        render_kw={'class': 'form-control', 'placeholder': '例如:5000', 'style': 'width: 250px'}
        )