상세 컨텐츠

본문 제목

파이썬 flask) No module named 'forms'

본문

728x90

forms.py가 있는데 모듈 인식을 하지 못하는 중이다. 

from flask_wtf import FlaskForm

from wtforms import StringField, PasswordField, SubmitField, BooleanField

from wtforms.validators import DataRequired, Length, Email, EqualTo

 


파이썬은 import 하는데서 오류가 많이나는듯...

import가 도저히 안되서 그냥 더미 데이터로 만들기로.... ㅠ

(import 안되는 내용 구글링은 주말 내 다한듯.....) 

 


조언 받은 부분)

가상 환경 설정을 anaconda에서 한 후에, 라이브러리들 다시 임포트해서 (pip install.... 다운 다시) 해보기

 

https://ubermensch-with.tistory.com/587

 

=> 되었다! 

(진----짜 import 안된다 싶으면 가상환경을 바꿔보세요.)

 

 

 

 

 

 

 

 

 

 


 

routes.py 

from flaskblog.forms import PostForm, RegistrationForm




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

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

 

forms.py (이건 만들어주기까지 해야함. 그냥 flaskbog 안에다가만)

이 위의 3줄이 import 가 안되는 것

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

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

class LoginFrom(FlaskForm):
    email = StringField('Email',
    validators=[DataRequired(), Email()])
    password = PasswordField('Password', validators=[DataRequired()])
    remember = BooleanField('Remember Me')
    submit = SubmitField('Login')

 

register.html

{% extends "layout.html" %}
{% block content %}

    <div class="content-section">
    <form method="POST" action="">
    {{ form.hidden_tag() }}
    <fieldset class="form-group">
    <legend class="border-bottom mb-4">Join Today</legend>
    <div class="form-group">
    {{ form.username.lable(class="form=control-lable") }}
    {{ form.username.lable(class="form=control form=control-lg") }}
    </div>
    <div class="form-group">
    {{ form.email.lable(class="form=control-lable") }}
    {{ form.email.lable(class="form=control form=control-lg") }}
    </div>
    <div class="form-group">
    {{ form.password.lable(class="form=control-lable") }}
    {{ form.password.lable(class="form=control form=control-lg") }}
    </div>
    <div class="form-group">
    {{ form.confirm_password.lable(class="form=control-lable") }}
    {{ form.confirm_password.lable(class="form=control form=control-lg") }}
    </div>
    </fieldset>
    <div class="form-group">
    {{ form.submit(class="btn btn-outline-info") }}
    </div>
    </form>
    </div>>
    <div class="border-top pt-3">
    <small class="text-muted">
    Already Have An Account? <a class="ml-2" href="{{ url_for('login') }}">Sing In</a>
    </small>
    </div>

{% endblock content %}

 

login.html은 만들어줘야. (특별한 내용은 없었음) 

 

728x90
반응형

관련글 더보기