Атрибут script_root
Атрибут script_root применяется к объекту запроса
request и возвращает корневой путь приложения
в виде строки. В отличие от root_path, который
указывает на файловую систему, script_root
возвращает URL-префикс, под которым смонтировано
приложение. Если приложение развёрнуто в корне домена,
значение будет пустой строкой. Если приложение
размещено в подкаталоге, например /myapp,
то script_root вернёт этот префикс.
Синтаксис
request.script_root
Пример
Давайте выведем значение script_root для
запроса к корню приложения:
from flask import Flask, request
app = Flask(__name__)
@app.route('/')
def index():
return request.script_root
Результат выполнения кода для адреса /:
""
Пример
Давайте сравним script_root и root_path,
чтобы увидеть разницу между URL-префиксом и путём
в файловой системе:
from flask import Flask, request
app = Flask(__name__)
@app.route('/user')
def user():
res = {
'script_root': request.script_root,
'root_path': request.root_path,
}
return res
Результат выполнения кода для адреса /user:
{'script_root': '', 'root_path': '/home/user/project'}
Пример
Давайте используем script_root для построения
абсолютного URL вручную:
from flask import Flask, request
app = Flask(__name__)
@app.route('/article')
def article():
base = request.host_url.rstrip('/') + request.script_root
return base + '/user'
Результат выполнения кода для адреса /article:
"http://localhost:5000/user"