使用蓝图时获得 "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 错误的原因。
我在使用蓝图时得到 "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 错误的原因。