Добавление маршрутов для URL Shortener с помощью Pyramid - PullRequest
0 голосов
/ 02 июля 2018

Я создаю сокращение URL с помощью Pyramid. Я храню короткие и длинные URL в БД. Теперь моя проблема заключается в том, как создать динамические ссылки с короткого URL-адреса на длинный. Оба URL построены правильно.

Я использую config.add_route? Если да, то как мне это сделать? Есть ли способ лучше? Могу ли я сделать это?

config.add_route(short_url, long_url)

1 Ответ

0 голосов
/ 04 июля 2018

Вы должны настроить один маршрут. Первый аргумент - это имя маршрута, а второй - шаблон, используемый для соответствия запросу.

config.add_route('short_url', '/{short_url}')
config.scan()

Затем вы добавили бы представление, которое обработало бы запрос, захватило значение matchdict для short_url, поискало в вашей базе данных, а затем вернуло ответ перенаправления.

@view_config(route_name='short_url')
def url_expander(request):
    short_url = request.matchdict['short_url']
    # verify short_url is a valid format you define before doing a db query
    # your db query code to find long_url
    # SELECT long_url FROM t WHERE short_url=short_url
    # handle case of no match in db
    return HTTPFound(location=long_url)

См. Примеры в документах https://docs.pylonsproject.org/projects/pyramid/en/latest/narr/urldispatch.html#routing-examples и https://docs.pylonsproject.org/projects/pyramid/en/latest/narr/views.html#using-a-view-callable-to-do-an-http-redirect.

...