Задание
Сделать микропоисковик.
Часть 1:
Есть txt-файл, в котором каждая строка считается находкой. Сделать сайт, на котором есть форма для поиска (стр1). По запросу в ней выдаётся список строк, отвечающих запросу (эффективность поиска не требуется; имеется в виду либо наличие введённого слова как самостоятельного слова в тексте, либо наличие введённого слова как подстроки в тексте) – (стр2). При клике в любую из выданных строк выдаётся фрагмент файла, содержащий данную строку + окрестность из 5 соседних строк в каждую сторону (стр3). Со (стр3) есть ссылка обратно на соответствующую (стр2) и на (стр1). Со (стр2) есть ссылка на (стр1).
Часть 2:
Дополнительно на (стр1) есть ссылка на (стр4), на которой есть форма для ввода текста и кнопка отправки. По нажатию кнопки введённый текст добавляется в конец файла, пользователь отправляется снова на (стр4). Со (стр4) есть ссылка на (стр1).
Полезные замечания:
тема называется html forms. В гугле по запросу html form tutorial полно более-менее неплохих текстов, например, вот: http://www.tizag.com/htmlT/forms.php
вот тут http://www.catcode.com/formguide/getpost.html хорошее объяснение про то, чем отличается GET от POST. http://www.catcode.com/formguide/index.html
с документацией по flask несколько суровее, по существу, не обязывающего нас к работе с базой данных есть только quickstart http://flask.pocoo.org/docs/quickstart/#the-request-object и его перевод на русский http://ru.wikibooks.org/wiki/Flask#.D0.9E.D0.B1.D1.8A.D0.B5.D0.BA.D1.82_.D0.B7.D0.B0.D0.BF.D1.80.D0.BE.D1.81.D0.B0
Впрочем, если вы поняли, что такое формы, то к серверной стороне остаётся только тот минимум ворпосов, на которые здесь есть ответ.
- очевидно, первая часть радикально проще делается, если делать формы с методом GET, а во второй части правильнее делать методом POST
- в питоне можно файл открывать в режиме "a" - append, тогда вы сразу пишете в конец файла
- в питоне можно держать одновременно один и тот же файл открытым несколько раз, но отлаживать проще, если его при необходимости открывать, читать/писать и сразу закрывать