Форум сайта python.su
Вот пытаюсь написать добавление комментов на паге.
Опишу последовательнось. Захожу на страницу адрес которой index.py?post=0 .
Выбираю добавить комментарий index.py?add_comment=0. Далее это все получает функция которая через filedstorage получает номер т.е. 0 . Юзер заполняет форму и отправляет
def comment_page()
str = cgi.FieldStorage()
pid = str.value
print “”“<table width=100% border=0 cellpadding=0 id=brdt cellspacing=0><tr>
<td align=left background=../project/img/td.jpg><font color=#000000>Add comment</font></td></tr>
<tr><td valign=top>”“”
print ‘<form name=form method=post action=index.py?pid=%s>’%pid
print “”“
name:<br><input type=text name=coname size=25 id=btn>
<br>email:<br><input type=text name=coemail size=25 id=btn>
<br>comment:<br><textarea name=comment id=btn cols=50></textarea>
<br><input name=Submit type=submit id=btnb value=Add></form>
</td></tr></table>”“”
Эт все передается index.py .
Отрывок index.py
string = cgi.FieldStorage()
if string.has_key('list'):
kernel.list_category(string.value)
elif string.has_key('show'):
kernel.show_post(string.value)
elif string.has_key('add_comment'):
kernel.comment_page()
elif (string.has_key('pid')) and (string.has_key('comment')) and (string.has_key('coname')) and (string.has_key('coemail')):
kernel.add_comment(string.value,string.value,string.value,string.value)
print ‘added’
Вот тока одна трабла , нифига это работать не хочет. Может есть вариант чтобы все работало в функции (т.е. чтобы передавалось index.py?show=0&добавление). Все на cgi
Офлайн
справилсо
Офлайн
niroкаким образом?
справилсо
Офлайн
В итоге мой вопрос сводился к тому как переправить определенное значение не вводя его , решение это html фишка типа <input type=hidden name=pid value=something>.
Все работоспособно выглядит вот так
index.py
elif (string.has_key('pid')):
pid = string.value
coname = string.value
coemail = string.value
comment = string.value
kernel.add_comment(pid,coname,coemail,comment)
print ‘Comment was added. <a href=index.py?show=%s>Go here</a>’%string.value
function
def comment_page(pid):
print “”“<table width=100% border=0 cellpadding=0 id=brdt cellspacing=0><tr>
<td align=left background=../project/img/td.jpg><font color=#000000>Add comment</font></td></tr>
<tr><td valign=top>
<form name=form method=post action=index.py>
name:<br><input type=text name=coname size=25>
<br>email:<br><input type=text name=coemail size=25>
<br>comment:<br><textarea name=comment cols=50></textarea>
<br><input type=submit value=Add>”“”
print “<input type=hidden name=pid value=%s></form></td></tr></table>”%pid
Офлайн
Тут возникла трабла с этим добавлением.Дело в том что оно все нормально работает, но если вводится текст на русском то все. Пытался перекодировать через unicode() , decode() , но ничего не получалось,выводит ошибку с кодировкой . Кодировка с которой добавляется текст на русском #-*-coding:koi8-r-*- надо переводить его в unicode. Посоветуйте нормальный вариант :rolleyes:
Офлайн
unicode(txt, “koi8-r”)
Офлайн
niro, а почему кодировка koi8-r, а не utf-8?
чем был обоснован твой выбор кодировки?
Офлайн
Выбор был обоснован тем , что в консоле установлена по умолчанию koi8-r
Офлайн
чтобы было как на ЛОРе ? ;)
Офлайн
niro
если ты “вводишь” инфу, то рациональней было бы юзать sys.getdefaultencoding() для получения кодировки системы
Офлайн