Запуск старой версии CS50 finance по-новому

4 (80%) 4 vote[s]

Ежегодные начальные курсы cs50 повторяются, задания перекочевывают из предыдущего курса в следующий, с небольшими изменениями (всегда что-то добавляется). Некоторые удаляются. В основном это касается мелких деталей, чтобы не было дубляжа. Но некоторые изменения связаны и по независящим от cs50 причинам: некоторые сервисы продаются, покупаются, меняются правила, что отражается на возможности их использования при разработке курса. Так случилось и с заданием finance: в далеком 15 или 16 году задание finance базировались на использовании сервиса http://download.finance.yahoo.com/. Выполнив задание тогда и потеряв к нему интерес, оно успешно забылось и ушло в архив. Но недавно, проверяя папки и запуская старые приложения, обнаружилось, что этот сервис недоступен. Пришлось посмотреть, что в CS50 использовали в последний раз в этом задании. Оказалось, история непростая: сначала перешли на https://www.alphavantage.co/, а потом вернулись к https://iexcloud.io/. Так появился повод быстренько вспомнить и оживить приложение.



Посмотрев спецификацию, видим, что изменилось немного, добавлен обработчик исключений в файле application.py:

def errorhandler(e):
    """Handle error"""
    return apology(e.name, e.code)
 
 
# listen for errors
for code in default_exceptions:
    app.errorhandler(code)(errorhandler)

В остальном осталось посмотреть, какие данные мы получаем в ответ от сервера (а данные скудненькие…), поправить значения в application.py, соответственно, изменить адрес запроса, и добавить несколько новых зависимостей (например, в файле application.py сразу же нужно добавить для обработчика исключений модуль

from werkzeug.exceptions import default_exceptions

В общем, приблизительно подогнали под последнюю спецификацию, хотя полного соответствия мы не добивались, поэтому до валидного варианта для проверки нужно дорабатывать/проверять самостоятельно.

Если у вас не установлены все нужные модули, вот почти исчерпывающий список зависимостей, которые нужны для запуска этого и других приложений cs50 на компьютере . Подразумевается, что у вас установлен bash (например, вместе с установкой MinGW/MinGW64 или Cygwin):

python get-pip.py
pip -V
pip install Flask
pip install Flask-JSGlue
pip install Flask-Session
pip install cs50
pip install SQLAlchemy
pip install feedparser
pip install nltk
pip install requests
pip install passlib
pip install Werkzeug

Возможно, что-то упустили, так как python установлен давно, и многое обновляется по ходу. Во всяком случае, запускать файлы нужно в режиме отладки и смотреть в командной строке, чего не хватает (если не запускается). Найти и получить код установки недостающего пакета можно здесь.

Хотя, по логике, если вы подключаете модули в шапке файла, вы уже знаете, что нужно загружать.

Видео записывалось несколько раньше, и в текущем варианте внешний вид приложения уже полностью подогнан под «работу команды».

В архив добавлен файл bash_run_ development.sh на тот случай, если вы не любите писать команды в консоли. Дважды кликните по нему, чтобы запустить приложение.

Конечно, вы можете добавить свои функции, вынести запросы к БД в отдельный файл. Редактировать БД удобно в CS50 ide , где вы можете выполнять задание.

Мы, например, добавили возможность увеличения доступных средств и возможность менять пароль (из рекомендуемых). Соответственно, количество .html шаблонов, стилей может быть абсолютно разным.

Вот объём получаемых данных JSON по NFLX (можете из этого придумать дополнительные функции приложения):

NFLX JSON

Вот вариант реализации application.py:

application.py

look_up в helpers.py

look_up

Вот весь архив для изучения и запуска.

Ссылки:

Читайте больше по теме:

Подписаться
Уведомление о
guest
0 комментариев
Inline Feedbacks
View all comments
Просмотры: 487

Популярные записи