Найти - Пользователи
Полная версия: Вопрос по MySQLdb
Начало » Python для экспертов » Вопрос по MySQLdb
1 2
yo0hoo
Пишу нечто вроде:

#!C:/python24/python
print “Content-Type: text/html\n\n”
import MySQLdb
db = MySQLdb.connect(db='test',user='root',passwd='')
c = db.cursor()
c.execute(“SELECT name FROM test;”)
results = c.fetchone()
db.close()
print “”“
<HTML>
<HEAD>
<TITLE>Test DB</TITLE>
</HEAD>
<BODY><PRE>
”“”
results
print results
print “<BR>”
print “”“
</PRE>
</BODY>
</HTML>
”“”

И выводится следующее:
('yo0hoo',)
Можно ли как-то сделать чтобы выводилась не эта “барматуха”, а просто yo0hoo без запятых и скобок?
slav0nic
>>> txt = ('yo0hoo',)
>>> txt
('yo0hoo',)
>>> txt[0]
'yo0hoo'
=\
yo0hoo
Спасибо. Но сразу возникает другой вопрос по этой же теме. Если попытаться внести данные в БД кодом:
c.execute(“INSERT INTO test VALUES('Проверка кодировки');”)
то выдается сообщение об ошибки вроде этого:
sys:1: DeprecationWarning: Non-ASCII character ‘\\xcf’ in file D:/Apache Group/Apache2/cgi-bin/db.cgi on line 5, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details\r
Traceback (most recent call last):\r
File “D:/Apache Group/Apache2/cgi-bin/db.cgi”, line 5, in ?\r
c.execute(“INSERT INTO test VALUES('\xcf\xf0\xee\xe2\xe5\xf0\xea\xe0 \xea\xee\xe4\xe8\xf0\xee\xe2\xea\xe8');”)\r
File “C:\\Python24\\Lib\\site-packages\\MySQLdb\\cursors.py”, line 146, in execute\r
query = query.encode(charset)\r
UnicodeDecodeError: ‘ascii’ codec can't decode byte 0xcf in position 30: ordinal not in range(128)\r
Как мне лучше поступить?
dev65
Как показывает мой опыт, лучше работать непосредственно с Юникодом. Больше гемора при разработке, меньше при использованиии. Юникод, он и в Африке Юникод :)
slav0nic
>>UnicodeDecodeError
таки лучше сразу юникод юзать и не забывай про кодировку самого файла
yo0hoo
Сама база в кодировке cp1251. Я честно говоря не совсем пойму что мне надо сделать. Мне надо поменять кодировку самой базы или что-то другое?
yo0hoo
Смотрю возможные кодировки: SHOW CHARACTER SET; unicode и в помине нет.
yo0hoo
Если сдеать таблицу utf8, то русские буквы отображаются нормально, кроме первой, вместо нее стоит ‘?’ . Что делать?
slav0nic
скажу честно: не юзаю я MySQL, но попробуй так MySQLdb.connect( …, use_unicode=0)
j2a
В начале py-файла добавь
# -*- coding: cp1251 -*-
Это для начала. А там видно будет…
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB