Уведомления

Группа в Telegram: @pythonsu

#1 Март 25, 2010 21:41:25

jingvar
От:
Зарегистрирован: 2010-03-24
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

WEB интерфейс в качестве GUI

+ весь мир потихоньку переходит на utf-8
Точно, кроме netbeans который по прежнему упорно дефолтно генерит под виндой cp1251

Прекрасно хочет.
Ну да как обычно танец с бубнами, я тут вообще угарал когда поставил Lazarus - там дефолтно иероглифы выводит в меню.

Я 2мя руками за utf8. Данная задача всилу ее тупости пока не предполагает многопоточности итд, но спасибо за подсказку.

На текущий момент времени я хочу аналог консольного вывода, ввода на веб морду плюс небольшое расширение в виде табличного вывода и вывода графиков.

Есть некоторые вопросы которые я пока не обдумал не прочитал:
а) узнать положение на странице, вернуть обновленную страницу на том же положении
б) узнать кодировку браузера
в) разрешение на клиентской стороне
г) возможно автообновление страницы клиентской сторной
д) т.к. страница динамически меняется нужно не допустить повторного ввода данных через обновить страницу в браузере

Еще раз текущая задача не ВЕБ сервер - т.е. куча страниц итд - страница будет одна, шаблоны только для кодирования стандартного принт в html.



Офлайн

#2 Апрель 1, 2010 11:59:18

jingvar
От:
Зарегистрирован: 2010-03-24
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

WEB интерфейс в качестве GUI

Мой проект в процессе, не хватает времени, но пока сделал перевод документации Bottle подробности http://python.su/forum/viewtopic.php?id=7004



Офлайн

#3 Апрель 6, 2010 16:48:12

jingvar
От:
Зарегистрирован: 2010-03-24
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

WEB интерфейс в качестве GUI

Идеологический вопрос:

Моя программа и как многие другие предполагаю последовательное выполнение алгоритма. В случае возникновения ситуации которая требует вмешательства пользователя, например ввод данных, программа останавливается, что-то происходит, и продолжается с того же места .

В случае web интерфейса логика получается несколько иная.

Лучше на конкретном примере:
Задача прочитать построчно файл, если строка > 50 символов, то нужно ее либо отредактировать до 50 символов либо разбить на 2 части (для простоты второй вариант опустим).
Как это будет выглядеть в классическом исполнении думаю понятно.

Вопрос в том как это сделать используя веб морду.
main_page: input type=“text” input type=“submit”
соответственно на main_page есть обработчик POST. По сути он и будет обрабатывать файл и если все хорошо, то в конце этой функции будет return “Done”
Но в процессе обработки возникла ситуация требующая вмешательства, нужно вызвать страницу-код обрабатывающий событие и вернутся обратно в main_page(POST).

Вот я не догоняю как все это реализовывать.



Офлайн

#4 Апрель 6, 2010 17:14:27

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

WEB интерфейс в качестве GUI

если обработка файлов занимает значительное время то я бы сделал отдельный процесс который занимается обработкой файлов, если нужно вмешательство то процесс останавливается и устанавливает флаг, клиент обращается к веб, тот смотрит что стоит флаг и выводит пост-морду. в html можно зашить автообновление.

если обработка быстрая то можно обрабатывать прямо при обращении клиента сохраняя промежуточный результат работы.

а по простому, процесс пробежал по всему файлу и потом вывалит все “проблемные” места в одну пост-морду

Офлайн

#5 Апрель 7, 2010 11:08:58

jingvar
От:
Зарегистрирован: 2010-03-24
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

WEB интерфейс в качестве GUI

o7412369815963
если обработка файлов занимает значительное время то я бы сделал отдельный процесс который занимается обработкой файлов, если нужно вмешательство то процесс останавливается и устанавливает флаг, клиент обращается к веб, тот смотрит что стоит флаг и выводит пост-морду. в html можно зашить автообновление.

если обработка быстрая то можно обрабатывать прямо при обращении клиента сохраняя промежуточный результат работы.

а по простому, процесс пробежал по всему файлу и потом вывалит все “проблемные” места в одну пост-морду
Спасибо, про пробежать по файлу думал, но есть зависимость между траблами, т.е. исправив один еще 10 отпадают, поэтому все вываливать не лучший вариант.

Вот на счет останавливает процесс и возвраты если можно подробней, или где почитать.



Офлайн

#6 Апрель 7, 2010 11:49:49

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

WEB интерфейс в качестве GUI

тут не читать, тут делать надо.

что-нибудь наподобие такого:
скрипт обработки файла:

for s in open('file','r').readlines():
if нужноВмешательство():
open('input','w').write(s)
while 1:
time.sleep(5)
if os.path.isfile('output'): break
s = open('output','r').read()
os.rmfile('output')
а веб:
@route('/')
def get():
if os.path.isfile('input'):
#Выводим форму для редактирования, текст из файла 'input'
return '<textarea>%s</textarea><input post />' % open('output','r').read()

@route('/', method='POST')
def post():
os.rmfile('input')
#делаем запись в файл output
open('output','w').write(request.POST['data'])
вот примерно такой наборсок

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version