You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask项目中导入FlaskForm时出现ImportError错误求助

Flask-WTF导入Flaskform报错的解决方法

在Flask项目中,尝试从flask_wtf导入Flaskform时触发ImportError,报错提示无法从'flask_wtf'中导入名称'Flaskform'。

报错回溯

Traceback (most recent call last):
File "c:\Users\lenovo\OneDrive\Desktop\digifit\login.py", line 1, in 
from flask_wtf import Flaskform
ImportError: cannot import name 'Flaskform' from 'flask_wtf' (C:\Users\lenovo\OneDrive\Desktop\digifit\env\Lib\site-packages\flask_wtf\__init__.py)

相关代码

表单文件(login.py)

from flask_wtf import Flaskform
from wtforms import StringField,PasswordField,SubmitField,BooleanField
from wtforms.validators import DataRequired,Length,EqualTo


class RegistrationForm(Flaskform):
    username = StringField('Username',validators=[DataRequired(),Length(min=2,max=20)])
    password = PasswordField('Password',validators=[DataRequired()])
    confirm_password = PasswordField(' Confirm Password',validators=[DataRequired(),EqualTo('password')])
    submit = SubmitField('Sign Up')

class LoginForm(Flaskform):
    username = StringField('Username',validators=[DataRequired(),Length(min=2,max=20)])
    password = PasswordField('Password',validators=[DataRequired()])
    remember = BooleanField("Remember Me")
    submit = SubmitField('LOGIN')    

项目主文件(app.py)

from flask import Flask,render_template,request
from flask_sqlalchemy import SQLAlchemy
from login import RegistrationForm,LoginForm


#media for the project
import os
prerna = os.path.join('static','pic.png')
prerna2 = os.path.join('static','Untitled.png')
prerna3 = os.path.join('static','wardrobe.png')
video = os.path.join('static','DigitalWardrobe.mp4')
prerna4 = os.path.join('static','BUUTON.png')
prerna5 = os.path.join('static','start.png')
prerna6=os.path.join('static','home.jpeg')

#create flask app
app = Flask(__name__)
#Database connenction
app.config["SQLALCHEMY_DATABASE_URI"] = 'sqlite:///loginForm.db'
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
app.config['SECRET_KEY'] = 'f79e06501f31fae1c771ee83cc8c3868'


#initialize the database
db = SQLAlchemy(app)

'''class is the table created in the database'''
class loginForm(db.Model):
    id = db.Column(db.Integer(), primary_key=True)
    username = db.Column(db.String(100), unique=True, nullable=False)
    password = db.Column(db.String(8), unique=True, nullable=False)

    def __repr__(self):
        return '<Name %r>' % self.id
with app.app_context():
    db.create_all()

#path for the pages
@app.route('/')
def index():
    return render_template("index.html",img = prerna2,img1 = prerna,img2 = prerna3,vid=video)

@app.route('/home')
def home() :
    return render_template("home.html",title='home',button=prerna4,home=prerna6)  

@app.route('/register')
def register():
    form = RegistrationForm()
    return render_template(register.html,title='Register',form=form)

@app.route('/login')
def login():
    form = loginForm()
    return render_template(login.html,title='login',form=form)    


@app.route("/createyourcloset")
def createyourcloset():
    return render_template("createyourcloset.html",start=prerna5)     

@app.route("/opennewcloset")
def opennewcloset():
    return render_template("opennewcloset.html")

if __name__=="__main__":
        
    app.run(debug=True)

修复步骤

1. 修正类名大小写错误

Flask-WTF的表单基类正确名称是FlaskForm(最后一个字母为大写F),代码中写成小写Flaskform导致导入失败,需修改两处:

  • 修改login.py中的导入语句:
    from flask_wtf import FlaskForm  # 替换原Flaskform
    
  • 修改表单类的继承:
    class RegistrationForm(FlaskForm):  # 替换Flaskform
    # ... 其余代码不变
    
    class LoginForm(FlaskForm):  # 替换Flaskform
    # ... 其余代码不变
    

2. 修复app.py中的其他错误

  • register路由中render_template的参数错误:register.html需添加引号,改为:
    return render_template("register.html",title='Register',form=form)
    
  • login路由中实例化了数据库模型loginForm,而非表单类LoginForm,需修正:
    @app.route('/login')
    def login():
        form = LoginForm()  # 使用表单类LoginForm
        return render_template("login.html",title='login',form=form)
    

内容的提问来源于stack exchange,提问作者Prerna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 10:05:38