【发布时间】:2013-12-20 14:00:03
【问题描述】:
我正在构建一个 Python/Flask(完全 ajax,无需重新加载整个页面)Web 应用程序,并且当 url 上的尖锐(“#”)符号更改 (Ben Alman, HashChange event)
我想捕获所有 Error-404 以在我的母版页中附加一个错误页面
考虑以下代码
from flask import Flask, redirect
#WebServerGatewayInterface
class WSGI():
def __init__(self):
self.app = Flask(__name__)
self.app.debug = True
wsgi = WSGI()
@wsgi.app.route("/")
def Home():
return "Home"
@wsgi.app.route("/Contact")
def Contact():
return "Contact"
@wsgi.app.errorhandler(404)
def PageNotFound(error):
return "PageNotFound"
if __name__ == '__main__':
wsgi.app.run(host='127.0.0.1', port=7777)
我想了解为什么当我在尖 ("#") 符号后添加一个不存在的 URL 时,它不会被错误处理程序捕获?
例如
127.0.0.1:7777
#It returns "Home"
127.0.0.1:7777/Contact
#It returns "Contact"
127.0.0.1:7777/Aasdasdasdasd
#It returns "PageNotFound"
127.0.0.1:7777/#/asdsaasdasdasdas
#It returns "Home", which is not right since this URL doesn't exist
127.0.0.1:7777/#!/asdsaasdasdasdas
#It returns "Home", not ok...
127.0.0.1:7777/#!/Contact
#It returns "Home", not ok...
【问题讨论】:
-
您知道 浏览器 会处理散列后的所有内容,对吧?只有
127.0.0.1:7777/是/应该被发送到服务器。