我有一个很大的模型,已经在我的models.py文件中定义了它,并且有提供它的表格。我是否必须明确声明表单的每个字段,还是有一种动态创建此字段的方法,以便我的代码中没有重复?
forms.py
class CustomerForm(FlaskForm): # must be a better way
""" Declarative Form base class responsible for customers
variable names match customers/models.py and in the corresponding HTML files """
tpi_name = StringField('Enter Your Name')
tpi_ref = StringField('Enter Your Email')
company_name = StringField('Company Name (*)', validators=[InputRequired()])
company_type = StringField('Company Type')
company_reg = StringField('Company Registration Number')
和forms.py
class Post(db.Model): # Must be a better way
""" Creates the table Post and models the structure of the database table """
tpi_name = db.Column(db.String(100), nullable=False)
tpi_ref = db.Column(db.String(100), nullable=False)
company_name = db.Column(db.String(100), nullable=False)
company_type = db.Column(db.String(100), nullable=False)
company_reg = db.Column(db.Integer, nullable=False)
所以这里有很多重复,还有更好的方法吗?
答案 0 :(得分:0)
我还没有亲自尝试过,但是遇到过:http://flask.pocoo.org/snippets/60/
类似的声音在讨论如果我正确理解您的问题,您将要达到的目标。
答案 1 :(得分:0)
也许您喜欢使用flask-admin库:https://flask-admin.readthedocs.io/en/latest/
它如何工作? Flask-Admin的基本概念是,它使您可以构建 通过将各个视图分组在类中来实现复杂的界面:每个网页 您会在前端看到,代表已明确添加的类上的方法 进入界面。
这些视图类在绑定到特定数据库时特别有用 模型,因为它们使您可以将所有常用的创建,读取,更新, 将每个模型的(CRUD)视图逻辑删除到一个单独的类中。
示例:
from flask_admin.contrib.sqla import ModelView
# Flask and Flask-SQLAlchemy initialization here
admin = Admin(app, name='microblog', template_mode='bootstrap3')
admin.add_view(ModelView(User, db.session))
admin.add_view(ModelView(Post, db.session))