2016-05-26 3 views
0

Derzeit baue ich eine Website für Übungszwecke. Ich verwende Flask-Sicherheit, um das Anmelde- und Registrierungssystem zu implementieren. Ich bekomme diesen Fehler wie im Titel angegeben. Hier meine Codes ist:UndefinedError: 'login_user_form' ist nicht definiert

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title>Main</title> 
    <meta name=":viewport" content="width=device-width, initial-scale =1"> 
    <!-- Latest compiled and minified CSS --> 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css"> 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap-responsive.min.css"> 

    <!-- Optional theme --> 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap-theme.min.css"> 

    <!--NavBar Design--> 
    <link href="{{url_for('static',filename='navbar_design.css')}}" rel="stylesheet"> 
</head> 
<body> 

<!--HEADER--> 
<nav class="navbar navbar-custom navbar-static-top"> 
<div class="container-fluid"> 
    <div class="navbar-header"> 

     <img style="max-width:80px; " src="{{url_for('static',filename='v4.png')}}" > 

    </div> 
    <ul class="nav navbar-nav"> 
     <li class="active"><a style="font-size:25px; margin-top:19px;" href="#">About Us</a></li> 
     <li class="dropdown"><a class="dropdown-toggle" data-toggle="dropdown" href="#" style="font-size:25px; margin-top:19px; " >Main Menu <span class="caret"></span></a> 
     <ul class="dropdown-menu"> 
      <li><a href="#">Survey Application Form</a></li> 
      <li><a href="#">Check The Result of The Survey Application</a></li> 

     </ul> 
     </li> 
    </ul> 
     <ul class="nav navbar-nav navbar-right"> 
      <li><a style="font-size:21px; margin-top:14px;" href="#" data-toggle="modal" data-target="#myModal1"><span class="glyphicon glyphicon-user"></span> Sign Up</a></li> 
      <li><a style="font-size:21px; margin-top:14px;" href="#" data-toggle="modal" data-target="#myModal2"><span class="glyphicon glyphicon-log-in"></span> Log In</a></li> 
    </ul> 
</div> 
</nav> 

<!--body--> 
{% from "security/_macros.html" import render_field_with_errors, render_field %} 
{% include "security/_messages.html" %} 

<div class="modal fade" id="myModal2" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"> 
    <div class="modal-dialog" role="document"> 
    <div class="modal-content"> 
     <!--Modal Head--> 
     <div class="modal-header"> 
      <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> 
      <h2 class="modal-title" id="myModalLabel">Log In</h2> 
     </div> 

<!--Modal Body--> 
     <div claas = "modal-body"> 
     <form action="{{ url_for_security('login') }}" method="POST" name="login_user_form"> 
       {{ login_user_form.hidden_tag() }} 
       {{ render_field_with_errors(login_user_form.email, class="form-control") }} 
       {{ render_field_with_errors(login_user_form.password, class="form-control") }} 
       {{ render_field_with_errors(login_user_form.remember) }} 
       {{ render_field(login_user_form.next) }} 
       <div class="modal-footer"> 
       {{ render_field(login_user_form.submit, class="btn btn-success") }} 
       </div> 

     </form> 
     Dont have an account ?{% include "security/_menu.html" %} 

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




<!--Footer--> 
<div class = "navbar navbar-custom navbar-fixed-bottom" role="navigation"> 
<div class = "container-fluid"> 
</div> 

</div> 

<!-- Latest compiled and minified JavaScript --> 
<script src="http://code.jquery.com/jquery-2.1.1.min.js"></script> 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script> 

</body> 
</html> 

In meinem Kolben, habe ich so etwas wie dieses

@app.route('/') 
def index(): 
    return render_template('main.html') 

dieser Fehler wird mir Fehler. Aber wenn ich die Vorlage geändert habe, und dann auf die Anmeldung zugreifen, indem ich die URL ändere, z. B. https://127.0.0.1:5000/login. Dieser Ansatz erzeugt keinen Fehler, aber das will ich nicht, ich möchte das oben genannte ausführen können. jede Hilfe wird geschätzt! Vielen Dank!

EDIT: screenshots of the error

+0

Was ist Ihre Frage 'login_user_form undefined?' Oder HTML nicht im Browser rendern? –

+0

Sie übergeben keinen Kontext an 'render_template' – dirn

Antwort

0

Können Sie den Fehler Zurückverfolgungs posten.

Es sieht so aus, als ob Ihre Indexfunktion nicht die richtigen Parameter an die Vorlage übergibt.

@app.route('/') 
def index(): 
    login_user_form = LoginForm() 
    return render_template('main.html',login_user_form) 

EDIT

Die Loginform Klasse sollte wie folgt aussehen.

class LoginForm(Form): 
    username = StringField("Enter your username",validators=[DataRequired()]) 
    password = PasswordField("Enter your password",validators=[DataRequired()]) 
    submit = SubmitField("Submit") 

Für weitere Einzelheiten überprüfen diese Link- Flask-wtf quickstart

Hoffe, es hilft.

+0

HI, danke für die Rückmeldung. Können Sie erklären, was ich in der 'IHRE FORMKLASSE' einschließen sollte, da ich Python Flask wirklich neu bin. Thanks – JackPowell

+0

Aktualisierte die Antwort, welche Klasse ich definierte, ist nur ein Beispiel. Überprüfen Sie den Dokumentlink für mehr Detail. – formatkaka