Пишем прости проекти. Проект №1. Част 2

Продължаваме да пишем проекта „Страница със статистически данни за лицеви опори“, използвайки колби + диаграми на Google.

В тази част ще допълним шаблона с javascript, ще обмислим и внедрим история на запазване/зареждане.

По-рано (http://bit.ly/20cxo8i) създаде основен проект на колба и html файл с Hiiii текст.

Файлова структура преди втората част:

Започваме втората част.

Моля, обърнете внимание, че кодът от поредицата от тези статии е очевиден и прост. Авторът няма за цел да напише перфектен код.

Първо, нека разберем какви данни има в проекта и как ще ги съхраняваме.

В този проект няма разнообразие от данни. Едно количество е броят на лицевите опори в даден момент T. Следователно не се изисква съхранение или готина база данни - файл е достатъчен. Нека напишем списък (масив) от елементи от две стойности във файла - време и брой лицеви опори

Броят на лицевите опори също цяло число.

Форматът е дефиниран. Сега нека започнем да запазваме/зареждаме данни от файла. За удобство ще се използва модулът туршия от стандартната библиотека.

Модулът на туршията ви позволява да конвертирате обект на python (променлива) в двоичен формат и обратно.

Това ще ви позволи да не мислите как да съхранявате описаната структура. Достатъчно е да се генерира списък с кортежи, да се прекара през модула и да се запише във файл. Ето какво ще направим:

Тогава ужасният код с глобална променлива:) Това е у дома домашна работа - пренапишете кода без глобална променлива.

На какво трябва да обърнете внимание:

  • модул туршия. Пишем този проект на Python3. За Python2 трябва да пишете cPickle
  • 'rb'и'wb'- писмо r означава четене, w - напишете и писмото б - двоичен. Нека ви напомня това туршия преобразува Python обект в двоична структура.

Практика: практикувайте с този код - записвайте данни с функция за запис, четете с четене

Референции: използването на шест модула (по избор) улеснява писането на преносим код. (т.е. съвместим с Python 2 и 3)

Нека поправим стартовия код:

По този начин при стартиране на сървъра в променливата ДАННИ ще има статистика за лицеви опори. Нека си припомним основната задача на проекта - да показва статистика за лицеви опори на уеб страница. За да прехвърлим тези данни на страницата, ние пренаписваме функцията индекс ():

Какво интересно има тук? Във функция render_template добави аргумент данни и предаде данните във формат JSON. Име данни действащ. С това име ще са налични данните в html шаблона.

Помощ: Форматът JSON е подходящ за уеб проекти поради поддръжката на браузъра и опростената структура на данните. Можете да прочетете за JSON тук

Засега нека завършим с кода на Python и преминем към шаблона. Сега трябва да покажем данните.

Замяна на текста Hiiiiiiii На >, както се досещате, получаваме картографиране на променливата json.dumps (ДАННИ) (предадено в метода на индекса). Докато DATA е празен (няма файл с данни), можете да зададете някаква собствена стойност - опитайте.

Помощ: формат за публикуване> е част от езика за шаблонизиране на Jinja2. Можете да прочетете възможностите на двигателя, като следвате връзката. Подобен синтаксисен формат се използва в друга уеб рамка (django)

Сега да отидем по-нататък, да визуализираме данните.

За това ще бъдат използвани диаграми на Google. Това е библиотека на Javascript с добра документация и примери. Разговор за Javascript може да отнеме много време, затова ще дам окончателния код и ще го опиша накратко.

В този код се случва следното

  • В етикета глава свързваме библиотеки за рисуване на графики
  • В блока

И всичко изглежда така:

Долен ред досега:

  • Има приложение на колба с възможност за запазване и зареждане на данни във/от файл. Дефиниран формат на данните.
  • Има страница, която показва графиката (все още няма данни)

Остава да свържете тези две части заедно.

При това ще прекъсна тази част.

Дата 2016-01-29 21:34:30 Категории Пишем уеб проекти Тагове