Flask 将烧瓶路由重定向到外部URL

Flask 将烧瓶路由重定向到外部URL,flask,redirect,Flask,Redirect,我有下面的路径,应该是将用户重定向到外部URL(这里我以苹果的URL为例)- 导入烧瓶 从flask导入flask、jsonify、Response、render_模板 进口pymongo 从pymongo导入MongoClient 从bson导入ObjectId,json_util 导入json cluster=pymongo.MongoClient(“mongodb+srv://USERNAME:PASSWORD@cluster0.mpjcg.mongodb.net/?retryWrites

我有下面的路径,应该是将用户重定向到外部URL(这里我以苹果的URL为例)-

导入烧瓶
从flask导入flask、jsonify、Response、render_模板
进口pymongo
从pymongo导入MongoClient
从bson导入ObjectId,json_util
导入json
cluster=pymongo.MongoClient(“mongodb+srv://USERNAME:PASSWORD@cluster0.mpjcg.mongodb.net/?retryWrites=true&w=majority“)
db=集群[“简单配方”]
集合=db[“食谱集合”]
app=烧瓶(名称)
#此路由返回团队的索引页
@附件路线(“/”)
def home():
返回渲染模板('index.html')
#此路线返回团队网站的heesung绘图页
@附件路线(“/heesung”)
def heesung():
返回重定向(“http://www.apple.com")
如果名称=“\uuuuu main\uuuuuuuu”:
app.run()
问题:
当我导航到我的
本地主机/heesung


注意:
我知道还有其他类似性质的问题,对于这些问题,我已经遵循了步骤,但这些都是老帖子,所以我想知道Flask是否有任何改变。我找不到任何明确的文档。

这与
返回重定向(“http://www.apple.com“”

当我导航到我的本地主机/heesung时,我在终端上不断得到一个
GET/heesung/HTTP/1.1“404

该终端输出表明您正在点击
/heesung/
(带有尾随斜杠)

与装饰师:

@app.route("/heesung")
@app.route("/heesung/")
  • /heesung
    的请求将成功
  • /heesung/
    的请求将为404
而不是装饰师:

@app.route("/heesung")
@app.route("/heesung/")
  • 请求
    /heesung/
    将成功
  • /heesung
    的请求将向
    /heesung/
    发出“308永久重定向”

选择最适合您的用例。

根据V25的评论,我忘了导入依赖项。很抱歉给大家带来麻烦

回答:

from flask import redirect

你忘了端口了吗?OP说他导航到URL时没有尾随斜杠。如果第一次尝试(没有斜杠)失败,Flask将附加尾随斜杠。@GAEfan OP这么说,但终端输出
GET/heesung/HTTP/1.1“404
表明请求中有尾随斜杠。我已经测试过这将是
1.1.1
,服务器输出将模拟请求中的内容。我怀疑OP在声明他请求的URL时忽略了这一点。感谢您到目前为止的评论。当我使用“@app.route(“/heesung/”)时,我得到一个500错误,但还有一个“NameError:name'redirect'未定义”@William需要从顶部的flask import redirect执行