得到"未找到"使用蓝图时

时间:2015-07-31 07:30:39

标签: python html flask routes

我得到"在服务器上找不到请求的URL。如果您手动输入了URL,请检查您的拼写,然后重试。"使用蓝图时

我的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">

1 个答案:

答案 0 :(得分:1)

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

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

请注意,如果login()返回false值,则None函数似乎会返回verify_from_database()。您需要始终从视图中返回有效响应(或引发异常)。这不是导致404错误的原因。