基于Flask的微电影管理5(管理员 forms表单)

由于管理员需要的表单较多,所以创建forms目录,用以编辑多个表单文件。
app/admin/forms/admin.py中:

from wtforms.validators import EqualTo
from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField, PasswordField, SelectField
from wtforms.validators import DataRequired

from app.models import Role


class BaseForm(FlaskForm):
    name = StringField(
        label='管理员名称',
        validators=[
            DataRequired('请输入管理员名称!')
        ],
    )

    pwd = PasswordField(
        label='管理员密码',
        validators=[
            DataRequired('请输入管理员密码!')
        ],
    )
    repwd = PasswordField(
        label='管理员确认密码',
        validators=[
            DataRequired('请输入管理员确认密码!'),
            EqualTo('pwd', message='两次密码不一致')
        ],
    )
    is_super = SelectField(
        label='是否超级管理员',
        description='默认为普通管理员',
        coerce=int,
        choices=[(0, '普通管理员'), (1, '超级管理员')],
    )
    role_id = SelectField(
        label='所属角色',
        validators=[
            DataRequired('请选择所属角色!')
        ],
        coerce=int,
        # choices=[(role.id, role.name) for role in Role.query.all()],
        description='所属角色',

    )

    def __init__(self, *args, **kwargs):
        super(BaseForm, self).__init__(*args, **kwargs)
        self.role_id.choices = [(v.id, v.name) for v in Role.query.all()]


class AdminForm(BaseForm):
    submit = SubmitField(
        label='添加管理员',
    )


class EditAdminForm(BaseForm):
    submit = SubmitField(
        label='编辑管理员',
    )

app/admin/forms/auth.py中:

from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField
from wtforms.validators import DataRequired


class BaseForm(FlaskForm):
    name = StringField(
        label='权限名称',
        validators=[
            DataRequired('请输入权限名称!')
        ],
    )
    url = StringField(
        label='访问链接',
        validators=[
            DataRequired('请输入访问链接!')
        ],
    )


class AuthForm(BaseForm):
    submit = SubmitField(
        label='添加权限',
    )


class EditAuthForm(BaseForm):
    submit = SubmitField(
        label='更新权限',
    )

app/admin/forms/main.py中:

from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField, SubmitField
from wtforms.validators import DataRequired


class BaseForm(FlaskForm):
    username = StringField(
        label="用户名",
        validators=[
            DataRequired()

        ]
    )
    password = PasswordField(
        label="密码",
        validators=[
            DataRequired(),
            # Length(6, 12, message="密码长度必须为6-12")

        ]
    )


class LoginForm(BaseForm):
    submit = SubmitField(
        label="登录"
    )


class PwdForm(FlaskForm):
    old_pwd = PasswordField(
        label="旧密码",
        validators=[
            DataRequired()
        ],
        # <input name="xxx" placeholder="">
        render_kw={
            'placeholder': "请输入旧密码"
        }
    )
    new_pwd = PasswordField(
        label="新密码",
        validators=[
            DataRequired()
        ],
        render_kw={
            'placeholder': "请输入新密码"
        }
    )

    submit = SubmitField(
        label="修改密码"
    )

app/admin/forms/movie.py中:

from flask_wtf import FlaskForm
from flask_wtf.file import FileAllowed
from wtforms import StringField, FileField, TextAreaField, SelectField, DateTimeField, SubmitField
from wtforms.validators import DataRequired

from app.models import Tag


class BaseForm(FlaskForm):
    name = StringField(
        label="电影名",
        validators=[
            DataRequired()
        ]
    )
    url = FileField(
        label="电影文件",
        validators=[
            FileAllowed(['mp4', 'avi'], message="文件格式不正确. 只能接收mp4和avi格式")
        ]
    )
    info = TextAreaField(
        label="电影简介"
    )
    logo = FileField(
        label="电影封面",
        validators=[
            FileAllowed(['png', 'jpg'], message="文件格式不正确.")
        ]
    )

    star = SelectField(
        label="电影星级",
        coerce=int,
        choices=[(i + 1, "%s星" % (i + 1)) for i in range(5)]
    )

    tag_id = SelectField(
        label="电影标签",
        coerce=int,
        # choices=[(tag.id, tag.name) for tag in Tag.query.all()]
    )

    area = StringField(
        label="上映地区"
    )
    length = StringField(
        label="电影时长"
    )
    release_time = DateTimeField(
        label="上映时间"
    )

    def __init__(self, *args, **kwargs):
        super(BaseForm, self).__init__(*args, **kwargs)
        # 当每次实例化表单时, 都重新查询标签的内容,
        self.tag_id.choices = [(tag.id, tag.name) for tag in Tag.query.all()]


class MovieForm(BaseForm):
    submit = SubmitField(
        label="添加电影"
    )


class EditMovieForm(BaseForm):
    submit = SubmitField(
        label="编辑电影"
    )

app/admin/forms/preview.py中:

from flask_wtf import FlaskForm
from wtforms import StringField, FileField, SubmitField
from wtforms.validators import DataRequired


class BaseForm(FlaskForm):
    name = StringField(
        label='预告标题',
        validators=[
            DataRequired('请输入预告标题!')
        ],
    )
    logo = FileField(
        label='预告封面',
        validators=[
            DataRequired('请上传预告封面!')
        ],
    )


class PreviewForm(BaseForm):
    submit = SubmitField(
        label='添加预告',
    )


class EditPreviewForm(BaseForm):
    submit = SubmitField(
        label='编辑预告',
    )

app/admin/forms/role.py中:

from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField, SelectMultipleField
from wtforms.validators import DataRequired

from app.models import Auth


class BaseForm(FlaskForm):
    name = StringField(
        label='角色名称',
        validators=[
            DataRequired('请输入角色名称!')
        ],
    )
    auths = SelectMultipleField(
        label='权限列表',
        description='请选择权限列表!(可多选)',
        coerce=int,
        # choices=[(item.id, item.name) for item in Auth.query.all()]
    )

    def __init__(self, *args, **kwargs):
        super(BaseForm, self).__init__(*args, **kwargs)
        self.auths.choices = [(item.id, item.name) for item in Auth.query.all()]


class RoleForm(BaseForm):
    submit = SubmitField(
        label='添加角色',

    )


class EditRoleForm(BaseForm):
    submit = SubmitField(
        label='编辑角色',
    )

app/admin/forms/tag.py中:

from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField
from wtforms.validators import DataRequired


class BaseForm(FlaskForm):
    name = StringField(
        label="标签名",
        validators=[
            DataRequired()
        ]
    )


class TagForm(BaseForm):
    submit = SubmitField(
        label="添加标签"
    )


class EditTagForm(BaseForm):
    submit = SubmitField(
        label="编辑标签"
    )

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值