Если это внутренний API - то есть вы / ваши представления и API имеете одинаковый доступ к ресурсам - почему вы используете API, а не получаете его результаты обычным образом (посредством манипулирования моделью и т. Д.)? Если вы хотите избежать дублирования кода, разбейте общий код на отдельные функции, которые могут использоваться обоими процессами.
Если это внешний API - например, ваш сайт обменивается данными с BitBucket - HTTP-клиент - это единственный (разумный) способ использования его. Хотя я лично выбрал бы httplib вместо urllib.