烧瓶404错误

时间:2018-08-27 18:04:46

标签: python flask

我正在使用Flask进行项目。运行该应用程序时出现错误。 这是我的python代码。

from flask import Flask,render_template

app = Flask(__name__)

app.route('/login')
app.route('/')
def login():
    return render_template('login.html')

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

这是我要呈现的HTML页面。

{% extends 'base.html' %}


{% block title %}
Login | Websitename
{% endblock %}

{% block custom_styles %}

<style>
  div.card, .login{
    justify-content: center;
  }
</style>

{% endblock %}



{% block main_content %}
<div class="d-flex login">
<div class="card d-flex">
  <div class="card-body">

  <h3 class="card-header">Login</h3>
  <input type="text" name="email" placeholder="Email or Username">
  <input type="password" name="password" placeholder="Password">
  <button type="submit" name="button" class="btn btn-block btn-primary">LOGIN</button>

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

{% endblock %}

这是base.html代码

<!DOCTYPE html>
<html lang="en"> 
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <link rel="stylesheet" href="{{ url_for('static',filename='bootstrap.min.css') }}">
    <title>{% block title %}{% endblock %}
    </title>
    {% block custom_styles %}{% endblock %}

 </head>
<body>

{% block main_content %}{% endblock %}


<script src="{{ url_for('static',filename='bootstrap.min.js') }}" charset="utf-8"></script>
<script src="{{ url_for('static',filename='jquery.min.js') }}" charset="utf-8"> 
   </script>
    <script src="{{ url_for('static',filename='popper.min.js') }}" charset="utf-8"> 
   </script></body></html>

我正在使用PyCharm IDE。 我从另一个烧瓶项目复制了venv文件夹(仅flask和其他库文件),该项目也使用了该项目使用的库。 复制venv文件夹的库文件是否可以,或者我必须为此项目或代码中的其他错误再次安装所有库。

预先感谢...:)This is the error i am getting.

3 个答案:

答案 0 :(得分:0)

from flask import Flask,render_template

app = Flask(__name__)


@app.route('/')

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

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

您正在为'/'定义函数,而不是登录。 让我知道这是否有效

答案 1 :(得分:0)

您在装饰器上缺少@。您的视图函数必须按以下方式定义:

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

否则,装饰器将不会应用于任何内容,因此不会将您的功能添加为通往烧瓶应用程序的路线的视图。

您可以在介绍装饰器的PEP中了解更多信息。

答案 2 :(得分:0)

您的装饰器看起来不正确:

app.route('/login')
app.route('/')
def login():
    return render_template('login.html')

尝试添加@字符:

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