Flask 子域变量未捕获,其他路由 404

Raj*_*Raj 6 python flask

我正在尝试使用 Flask 的子域参数,但遇到了一些麻烦。

我已将本地 /etc/hosts/ 文件配置为将 example.com 和 blog.example.com 指向 127.0.0.1。

对于 ' index' 路由,当我浏览到http://blog.example.com:5000时,不会捕获子域参数。当我尝试打印时,var它会打印“var is”。

' login' 路由 404,但我不知道为什么。任何帮助将不胜感激!

from flask import Flask

app = Flask(__name__)
app.debug=True
app.config['SERVER_NAME'] = 'example.com'


# prints "var is <invalid>"
@app.route('/', subdomain="<var>", methods=['GET'])
def index(var):
    print "var is %s" % var
    return "Hello World %s" % var

# This 404s
@app.route('/login/', methods=['GET'])
def login():
    return "Login Here!"

if __name__ == '__main__':
    app.run(host='example.com', debug=True)
Run Code Online (Sandbox Code Playgroud)

Chr*_*nel 5

您需要在SERVER_NAME配置中包含端口号。

app.config['SERVER_NAME'] = 'example.com:5000'
Run Code Online (Sandbox Code Playgroud)

应该修复它。

  • 那行得通,但现在当我不使用子域时,它的索引路由是 404s。这是它应该如何工作? (2认同)
  • 弄清楚了!只需要像这样添加另一个路由装饰器:@app.route('/', methods=['GET']) (2认同)