使用蓝图时获得 "NOT FOUND"

getting "NOT FOUND" when using blueprints

我在使用蓝图时得到 "The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again."

我的app.py代码在下面,请看

__author__ = 'mullapudi'
from flask import Flask,request,redirect,Blueprint,render_template

blueprint = Blueprint('app', __name__, url_prefix='/login')

@blueprint.route('/', methods=['GET', 'POST'])
def admin_login():
    # Located at https://yourdomain.com/login
    return render_template('admin_login.html')

@blueprint.route('/login/', methods=['GET', 'POST'])
def login():
    # Located at https://yourdomain.com/login/login
    return  render_template('admin_login.html')

我的__init__.py代码如下

from flask import Flask,request,Blueprint
from app import blueprint

app = Flask(__name__)
app.register_blueprint(blueprint)

app.run()

我的html代码在下面,我的表格是这样的

<form action="{{url_for('app.login')}}" method="post">

现在我的代码有什么问题吗,请帮助我,我的结构是

/sample ->>project name
    /static
    /templtes-->>html codes are here
    __init__.py
    app.py

编辑

它正在为 url localhost:5000/login/ 工作 但它不适用于 localhost:5000/login/login/

@blueprint.route('/login/', methods=['GET', 'POST'])
def login():
    # Located at https://yourdomain.com/login/login
    un = request.form['un']
    pwd = request.form['pwd']
    print un,pwd
    if verify_from_database(un,pwd):
        print "admin authentication successful"
        return render_template('adminPage1.html')

@blueprint.route('/addnew/', methods=['GET', 'POST'])
def adminPage1():
    # Located at https://yourdomain.com/login/addnew
    return  render_template('example.html')

而adminPage1.html的形式是

 <form action="{{url_for('app.addnew')}}" method="post">

您的蓝图使用 前缀。访问路由时需要包含此前缀。

由于您使用 url_prefix='/login',您需要查找 /login/(对于 / 路由)和 /login/login/(对于 /login/ 路由)。

请注意,如果 verify_from_database() return 是假值,您的 login() 函数将 return None 显示。您需要 始终 return 来自视图的有效响应(或引发异常)。然而,这不是导致您的 404 错误的原因。