Система папок URL Django Python - PullRequest
0 голосов
/ 02 марта 2019

Как можно перемещаться по папкам с помощью URL-адреса, как в Dropbox.
Пример: у меня есть URL-адрес файла имя_сайта / home / path1 / path2 / file
Как я могупринять path1 / path2 / file в качестве параметра из URL в Django?
Или единственный способ - использовать параметры GET в качестве PATH для файла имя_сайта / home? Путь = путь1 / путь2 / файл ?

1 Ответ

0 голосов
/ 02 марта 2019

Если вы используете django 2.0 +:

re_path(r'^.*', some_view)

В противном случае:

url(r'^.*', some_view)

Вы должны поставить это после всех других URL, иначе они перестанут работать, потому что этот шаблон соответствует каждомуurl.

И тогда вы получите путь в своем представлении:

def some_view(request):
    full_path = request.path

    split_path = full_path.split('/')

    # If you have slash at the end of the url, you should pick the second last item.
    if len(split_path[-1] < 1:
        file = split_path[-2]
        folders = split_path[2:len(split_path)-2]
    else:
        file = split_path[-1]
        folders = split_path[2:len(split_path)-1]

Для пути, подобного site.com/home/path1/path2/path3/file/, вы получите это, если напечатаете folders:

['path1', 'path2', 'path3']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...