Форум сайта python.su
Здравствуйте! Возникала проблема с выводом текста из таблицы.
Делаю так:
import cgi
import MySQLdb
zp=cgi.FieldStorage()
p=zp.has_key('pages')
pag=zp["pages"].value
pags=int(pag)
news='{NEWS}'
if pags == 1:
cursor.execute("""SELECT * FROM News WHERE id=1""")
nw=cursor.fetchall()
xen=xen.replace(news, nw[1])
print xen
#!/usr/bin/python
import cgi
import MySQLdb
zp=cgi.FieldStorage()
p=zp.has_key('pages')
pag=zp["pages"].value
pags=int(pag)
MyDB=MySQLdb.connect(host='localhost', user='root', passwd='', db='sevreid')
cursor=MyDB.cursor()
cursor.execute("""SELECT * FROM Pages_Title WHERE id="""+pag)
tl=cursor.fetchall()
cursor.execute("""SELECT * FROM Top_Menu ORDER BY pos ASC""")
out=''
for link in cursor.fetchall():
out=out+'<td width="'+link[3]+'">'
out=out+'<a href="'+link[1]+'">'+link[2]+'</a>'+'</td>'
cursor.execute("""SELECT * FROM Right_Menu ORDER BY pos ASC""")
r_out=''
for rlink in cursor.fetchall():
r_out=r_out+'    <img src="/images/pt.png" /><a href="'+rlink[2]+'" id="r_menu"> '
r_out=r_out+rlink[1]+'</a><br />'
title='{TITLE}'
topMenu='{TOP_MENU}'
rightMenu='{RIGHT_MENU}'
cont='{CONTENT}'
about='(ABOUT}'
news='{NEWS}'
print 'Content-Type: text/html\n'
if pags == 1:
sh=open(r'themplates/sh2')
if pags > 1:
sh=open(r'themplates/sh1')
res=sh.read()
xen=res
xen=xen.replace(rightMenu, r_out)
xen=xen.replace(topMenu, out)
#xen=xen.replace(title, tl[1].decode('utf8'))
if pags == 1:
#cursor.execute("""SELECT * FROM about WHERE id=1""")
#ab=cursor.fetchall()
cursor.execute("""SELECT * FROM News WHERE id=1""")
nw=cursor.fetchall()
cursor.execute("""SELECT * FROM IndexPage ORDER BY id ASC""")
ct=''
for row in cursor.fetchall():
ct=ct+'<td></td><td id="zgl">'+row[1]+'</td><td></td>'
ct=ct+'<td id="zgl">'+row[2]+'</td><td></td></tr><tr>'
ct=ct+'<td width="25%"></td><td>'+row[3]+'</td>'
ct=ct+'<td width="8%"></td><td>'+row[4]+'</td>'
ct=ct+'<td width="25%"></td></tr><tr>'
ct=ct+'<td></td><td>'+row[5]+'</td><td></td><td>'+row[6]+'</td>'
ct=ct+'<td></td></tr><tr><td></td><td></td><td></td>'
ct=ct+'<td></td><td height="30px"></td></tr>'
xen=xen.replace(cont, ct)
#xen=xen.replace(about, ab[0])
xen=xen.replace(news, nw[1])
print xen
Офлайн
Fe_DoS, глядя на код, осмелюсь предположить, что вы до этого много программировали на PHP? ;)
xen=xen.replace(news, nw[1])\r
IndexError: tuple index out of range\r
Офлайн
maxwell, Вы правы, я до этого программировал на PHP.
Я перевёл и сделал вот так:
import cgi
import MySQLdb
zp=cgi.FieldStorage()
p=zp.has_key('pages')
pag=zp["pages"].value
pags=int(pag)
news='{NEWS}'
if pags == 1:
cursor.execute("""SELECT * FROM News WHERE id=1""")
nw=cursor.fetchall()
xen=xen.replace(news, nw[0][1])
print xen
for rlink in cursor.fetchall():
r_out=r_out+'    <img src="/images/pt.png" /><a href="'+rlink[2]+'" id="r_menu"> '
r_out=r_out+rlink[1]+'</a><br />'
Офлайн
Да и вообще можно посоветовать, не использовать python через cgi. Если хостинг позволяет, лучше заюзать mod_wsqi. И использовать какой нибудь фреймворк, начиная от простого web.py заканчивая django. Скорость разработки увеличится на порядок, по сравнению с “голым” php или python.
Офлайн