Реализация модальной формы с Flask - PullRequest
0 голосов
/ 17 апреля 2020

Я младший разработчик, и мне было трудно пытаться реализовать модальную форму в Flask. И модальный вход, и модальный вход находятся на одной странице HTML. Он продолжает говорить, что форма неопределена. ниже код

код в моем form.py

class SignupForm(Form):
    username = StringField('', [validators.Length(min=4, max=30)])
    email = StringField('', [validators.length(min=6, max=50)])
    password = PasswordField('', [
        validators.DataRequired(),
        validators.EqualTo('confirm', message="Password do not match")])
    confirm = PasswordField('', [validators.length(min=6, max=50), validators.DataRequired()])
    create = SubmitField('Sign up')

class LoginForm(Form):
    email = StringField(" ", [validators.Length(min=6, max=50), validators.DataRequired()])
    password = PasswordField('', [validators.DataRequired(),validators.Length(min=2, max=50)])
    submit = SubmitField('login')
    remember = BooleanField('remember me')`

def signup():
    # mysql = MySQL(c_app)
    form  = SignupForm(request.form)

     return render_template('signup.html',form=form)

@loginv.route("/login", methods=['GET', 'POST'])
def login():
    form = LoginForm(request.form)

    return render_template("signin.html", form=form)
Traceback (most recent call last):
    return original_handler(e)
  File "C:\Users\Mr Ayo\.virtualenvs\cta\lib\site-packages\flask\app.py", line 1737, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "C:\Users\Mr Ayo\.virtualenvs\cta\lib\site-packages\flask\_compat.py", line 36, in reraise
    raise value
  File "C:\Users\Mr Ayo\.virtualenvs\cta\lib\site-packages\flask\app.py", line 1832, in full_dispatch_request
    rv = self.dispatch_request()
  File "C:\Users\Mr Ayo\.virtualenvs\cta\lib\site-packages\flask\app.py", line 1818, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "C:\Users\Mr Ayo\Desktop\my_social_trends\views\search.py", line 65, in search
    return render_template("index-home.html")
  File "C:\Users\Mr Ayo\.virtualenvs\cta\lib\site-packages\flask\templating.py", line 135, in render_template
    context, ctx.app)
  File "C:\Users\Mr Ayo\.virtualenvs\cta\lib\site-packages\flask\templating.py", line 117, in _render
    rv = template.render(context)
  File "C:\Users\Mr Ayo\.virtualenvs\cta\lib\site-packages\jinja2\asyncsupport.py", line 76, in render
    return original_render(self, *args, **kwargs)
  File "C:\Users\Mr Ayo\.virtualenvs\cta\lib\site-packages\jinja2\environment.py", line 1008, in render
    return self.environment.handle_exception(exc_info, True)
  File "C:\Users\Mr Ayo\.virtualenvs\cta\lib\site-packages\jinja2\environment.py", line 780, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "C:\Users\Mr Ayo\.virtualenvs\cta\lib\site-packages\jinja2\_compat.py", line 37, in reraise
    raise value.with_traceback(tb)
  File "C:\Users\Mr Ayo\Desktop\my_social_trends\templates\index-home.html", line 1, in top-level template code
    {% extends 'main-layout.html' %}
  File "C:\Users\Mr Ayo\Desktop\my_social_trends\templates\main-layout.html", line 142, in top-level template code
    {{ form.name }}
  File "C:\Users\Mr Ayo\.virtualenvs\cta\lib\site-packages\jinja2\environment.py", line 430, in getattr
    return getattr(obj, attribute)
jinja2.exceptions.UndefinedError: 'form' is undefined

1 Ответ

0 голосов
/ 18 апреля 2020

Домашняя страница, на которой модальности регистрации и входа ... .... 1001 *

 {% from "includes/_formhelpers.html" import render_field %}
 <!-- Sign Up Modal -->
 <div class="modal fade" id="signUpModalCenter" tabindex="-1" role="dialog" aria- 
 labelledby="exampleModalCenterTitle" aria-hidden="true">
        <div class="modal-dialog modal-dialog-centered sign-modal-dialog" 
  role="document">
            {%include 'includes/_messages.html' %}
            <div class="modal-content sign-modal-content">
            <div class="modal-header sign-modal-header">
                <div class="modal-title sign-modal-title" 
      id="exampleModalCenterTitle">
                   <h5><img src="../static/images/main-images/user-sign.png" alt=""> 
     <span>Create Account</span></h5>
                </div>
                <button type="button" class="close sign-close" data-dismiss="modal" 
       aria-label="Close">
                <span aria-hidden="true">&times;</span>
                </button>
            </div>
            <div class="modal-body">
                <div class="get-started">
                    <p>Get Started!</p>
                </div>
                <div class="sign-form">
                    <form action="" method="post">
                        <div class="sign-name">
                            <p><label for="username">Name</label></p>
                            {{ render_field(form.username, class_='signup-form-input 
              form-control' ) }}
                        </div>
                        <div class="sign-email">
                            <p><label for="email">Email Address</label></p>
                          {{ render_field(form.email, class_='signup-form-input form- 
           control' ) }}
                        </div>
                        <div class="sign-password">
                            <p><label for="password">Create Password</label></p>
                           {{ render_field(form.password, class_='signup-form-input 
         form-control' ) }}
                        </div>
                        <div class="sign-password">
                            <p><label for="password">Confirm Password</label></p>
                           {{ render_field(form.password, class_='signup-form-input 
            form-control' ) }}
                        </div>
                        <div class="sign-up-link text-center sign-link">
                              <button type="submit" class= "submit" 
          value="submit">Sign up</button>
                        </div>
                        <div class="sign-in-link text-center">
                            <p><span><a href=""  data-dismiss="modal" data- 
 toggle="modal" data-target="#signInModalCenter">Sign In</a></span> instead?</p>
                        </div>
                    </form>
                </div>

            </div>
            <!-- <div class="modal-footer">
                <button type="button" class="btn btn-secondary" data- 
    dismiss="modal">Close</button>
                <button type="button" class="btn btn-primary">Save changes</button>
            </div> -->
            </div>
        </div>
    </div>

 <!-- Sign In Modal -->

    <div class="modal fade" id="signInModalCenter" tabindex="-1" role="dialog" aria- 
      labelledby="exampleModalCenterTitle" aria-hidden="true">
        <div class="modal-dialog modal-dialog-centered sign-modal-dialog" 
      role="document">
            <div class="modal-content sign-modal-content">

            <div class="modal-header sign-modal-header">
    <div class="modal-title sign-modal-title" id=" ">
        <h5><img src="../static/images/main-images/user-sign.png" alt=""><span>Welcome 
    Back</span></h5>
    </div>
    <button type="button" class="close sign-close" data-dismiss="modal" aria- 
    label="Close">
    <span aria-hidden="true">&times;</span>
    </button>
</div>

<div class="modal-body">
    <div class="get-started">
        <p>Sign in to your account.</p>
    </div>
    <div class="sign-form">

        <form action="/login" method="post">
            <div class="sign-name">
                <p><label for="username">Username</label></p>
                {{ render_field(form.email, class_='login2-form-input form-control' ) 
     }}
            </div>

            <div class="sign-password ">
                <p><label for="password">Password</label></p>
                {{ render_field(form.password, class_='login2-form-input form-control' 
        ) }}
            </div>


            <div class="sign-up-link text-center">
                 <button type="submit" class="submit" >Login</button>
            </div>
            <div class="sign-in-link text-center">
                <p> Don't have an account?</p>
                <span><a href=""  data-dismiss="modal" data-toggle="modal" data- 
          target="#signUpModalCenter">Sign Up</a></span>
            </div>
        </form>
     </div>

      </div>
            </div>
        </div>
    </div>
...