플라스크의 URL로 리디렉션
저는 Python과 Flask를 처음 사용하고 Response.redirect
있으며 C #에서 와 같은 작업을 수행하려고합니다 . 즉, 특정 URL로 리디렉션-어떻게해야합니까?
내 코드는 다음과 같습니다.
import os
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return 'Hello World!'
if __name__ == '__main__':
# Bind to PORT if defined, otherwise default to 5000.
port = int(os.environ.get('PORT', 5000))
app.run(host='0.0.0.0', port=port)
리디렉션을 반환해야합니다.
import os
from flask import Flask,redirect
app = Flask(__name__)
@app.route('/')
def hello():
return redirect("http://www.example.com", code=302)
if __name__ == '__main__':
# Bind to PORT if defined, otherwise default to 5000.
port = int(os.environ.get('PORT', 5000))
app.run(host='0.0.0.0', port=port)
플라스크 문서에 대한 설명서를 참조하십시오 . 코드의 기본값은 302이므로 code=302
생략하거나 다른 리디렉션 코드 (301, 302, 303, 305 및 307 중 하나)로 대체 할 수 있습니다.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
from flask import Flask, redirect, url_for
app = Flask(__name__)
@app.route('/')
def hello():
return redirect(url_for('foo'))
@app.route('/foo')
def foo():
return 'Hello Foo!'
if __name__ == '__main__':
# Bind to PORT if defined, otherwise default to 5000.
port = int(os.environ.get('PORT', 5000))
app.run(host='0.0.0.0', port=port)
로부터 플라스크 API 문서 (V 0.10.) :
플라스크. 리디렉션 (
location
,code=302
,Response=None
)Returns a response object (a WSGI application) that, if called, redirects the client to the target location. Supported codes are 301, 302, 303, 305, and 307. 300 is not supported because it’s not a real redirect and 304 because it’s the answer for a request with a request with defined If-Modified-Since headers.
New in version 0.6: The location can now be a unicode string that is encoded using the iri_to_uri() function.
Parameters:
location
– the location the response should redirect to.code
– the redirect status code. defaults to 302.Response
(class) – a Response class to use when instantiating a response. The default is werkzeug.wrappers.Response if unspecified.
I believe that this question deserves an updated: just take a look on the other approaches and make the comparisons.
Here is how you do redirection (3xx) from one url to another in Flask (0.12.2):
#!/usr/bin/env python
from flask import Flask, redirect
app = Flask(__name__)
@app.route("/")
def index():
return redirect('/you_were_redirected')
@app.route("/you_were_redirected")
def redirected():
return "You were redirected. Congrats :)!"
if __name__ == "__main__":
app.run(host="0.0.0.0",port=8000,debug=True)
For other official references, here.
flask.redirect(location, code=302)
Docs can be found here.
Flask includes the redirect
function for redirecting to any url. Futhermore, you can abort a request early with an error code with abort
:
from flask import abort, Flask, redirect, url_for
app = Flask(__name__)
@app.route('/')
def hello():
return redirect(url_for('hello'))
@app.route('/hello'):
def world:
abort(401)
By default a black and white error page is shown for each error code.
The redirect
method takes by default the code 302. A list for http status codes here.
For this you can simply use the redirect
function that is included in flask
from flask import Flask, redirect
app = Flask(__name__)
@app.route('/')
def hello():
return redirect("www.exampleURL.com", code = 302)
if __name__ == "__main__":
app.run()
Another useful tip(as you're new to flask), is to add app.debug = True
after initializing the flask object as the debugger output helps a lot while figuring out what's wrong.
참고URL : https://stackoverflow.com/questions/14343812/redirecting-to-url-in-flask
'Programming' 카테고리의 다른 글
동일한 유형의 항목이있는 목록 목록을 단일 항목 목록에 병합하는 방법은 무엇입니까? (0) | 2020.05.14 |
---|---|
사전 및 기본값 (0) | 2020.05.14 |
수업 연장시 팽창 오류 (0) | 2020.05.14 |
Java 및 .NET에서 문자열을 변경할 수없는 이유는 무엇입니까? (0) | 2020.05.14 |
파이썬에서 함수에서 두 값을 어떻게 반환 할 수 있습니까? (0) | 2020.05.14 |