не подскажите гдевзять модули для мобильного python(симба)? Или не где прочитать про их написание?(они ведь пишутся с+)мог бы кто нибудь дать простой пример с подробными комментами?
Доброе время суток. Помогите плиз разобраться с кодировкой на питоне. Вопрос следующий - есть французское название которое я предлагаю функции - Collège. Нужно чтобы в таком же виде это названии шло в мою процедуру. Сейчас же оно идет в таком виде Coll\xe8ge. Вот пример кода: # -*- coding: utf-8 -*- import pymssql, from django.http import HttpResponse import settings @render_to('blog/test.html') def blog(request): conn = pymssql.connect(host=settings.MSSQL_DB_HOST, user=settings.MSSQL_DB_LOGIN, password=settings.MSSQL_DB_PASSWORD, database=settings.MSSQL_DB_DATABASE, as_dict=True) cur = conn.cursor() term = "Collège" sql = "get_imported_company_name '"+str(term)+"',1" lists = cur.fetchall() conn.close() return HttpResponse(term) Возвращает на страницу оно правильно, а вот запрос идёт у виде: exec get_imported_company_name 'Coll\xe8ge',1 нужно: exec get_imported_company_name 'Collège',1 Может у кого то была подобная проблема?
Проблема в том, что в процедуру попадает вот такое представление данных exec get_imported_company_name 'Coll\xe8ge',1. В процедурe я инсертю первый параметр в таблицу и она туда попадает в таком виде Coll\xe8ge, то есть не декодировано
!Knyaz2010! вы ошибаетесь. Данные в присвоении term = "Collège" - правильные. Далее вы их в какой то момент самолично портите, используя функции str(), например. Или же в момент вывода на экран запроса происходит преобразование в представление. Если вы SQL запрос составляете с помощью функций str() и плюсов - у меня для вас плохая новость, вы кодите на каком-то другом языке, а не на питоне. PyMSSQL поддерживает спецификацию DB-API 2.0, рекомендую ознакомиться что это такое и начать использовать параметризованные вызовы. Например вместо Сделать так:
Извините, по быстрому набрал код. Я использую вот такую строку sql_test = """exec get_imported_company_name '{0}',1""".format(term) но она также не подходит. А когда использую ваш вариант - cur.callproc('get_imported_company_name', (term, 1)) - также выводит ошибку: UnicodeEncodeError at /blog/ ('ascii', u'Coll\xe8ge', 4, 5, 'ordinal not in range(128)') И ещё хотел добавить - если эту переменную term просто вывести в темплейт то выводит правильно. Использую версию пайтона 2.6, может в этом причина?
!Knyaz2010! Попробуйте в pymssql.connect явно указать кодировку charset='UTF-8'. В какой кодировке находится база? В какой кодировке приходят данные в скрипт? В какой момент возникает ошибка И вот у меня возник вопрос, а вы, все-таки, не делаете ли из мухи слона? Чем вам мешает тот факт, что внутри скрипта вывод в таком виде?
Отвечу по порядку: 1) в pymssql.connect явно указать кодировку charset='UTF-8' - делал, не помогло. По дефолту стоит эта кодировка. 2) База в UTF-8 3) в скрипт данные также приходят в UTF-8, но пайтон её как то декодирует по своему 4) ошибка возникает когда идет запрос к базе. Выскакивает эта ошибка, о которой я писал на пост раньше. Проблема в том что в процедуре находится саммый обичный селект типа "SELECT column_name FROM table WHERE colunm_name2 LIKE '%word%'". При этом база не сможет выдать (и не выдает) ничего когда word=Coll\xe8ge, так как в запрос непосредсвенно идет почему то эта строка, не декодирована и никакая, и в базе она тажке не преврячаеться в нормальный вид
Code: import socket class DNSQuery: def __init__(self, data): self.data=data self.dominio='' tipo = (ord(data[2]) >> 3) & 15 # Opcode bits if tipo == 0: # Standard query ini=12 lon=ord(data[ini]) while lon != 0: self.dominio+=data[ini+1:ini+lon+1]+'.' ini+=lon+1 lon=ord(data[ini]) def respuesta(self, ip): packet='' if self.dominio: packet+=self.data[:2] + "\x81\x80" packet+=self.data[4:6] + self.data[4:6] + '\x00\x00\x00\x00' # Questions and Answers Counts packet+=self.data[12:] # Original Domain Name Question packet+='\xc0\x0c' # Pointer to domain name packet+='\x00\x01\x00\x01\x00\x00\x00\x3c\x00\x04' # Response type, ttl and resource data length -> 4 bytes packet+=str.join('',map(lambda x: chr(int(x)), ip.split('.'))) # 4bytes of IP return packet if __name__ == '__main__': ip='192.168.1.1' print 'pyminifakeDNS:: dom.query. 60 IN A %s' % ip udps = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) udps.bind(('',53)) try: while 1: data, addr = udps.recvfrom(1024) p=DNSQuery(data) udps.sendto(p.respuesta(ip), addr) print 'Respuesta: %s -> %s' % (p.dominio, ip) except KeyboardInterrupt: print 'Finalizando' udps.close() ошибка: File "recipe-491264-1.py", line 30 print 'pyminifakeDNS:: dom.query. 60 IN A %s' % ip ^ SyntaxError: invalid syntax
Traceback (most recent call last): File "lolzik.py", line 16, in ? from dpkt import tcp, ip, ethernet, arp, hexdump ImportError: No module named dpkt как импортировать ети модули?под сплоент извиняюсь нашёл # wget http://dpkt.googlecode.com/files/dpkt-1.7.tar.gz
2 !Knyaz2010!, уточните версию Python. Если там 2.x то ваша проблема скорей всего решится вот таким вот образом: Code: term = [B]u[/B]"Collège" sql_test = [B]u[/B]"""exec get_imported_company_name '{0}',1""".format(term) И да, не забывайте о параметризованных вызовах, как вам советует Gifts
python и icq Здравствуйте, кто-то работал в python с icq, какие дополнения лучше всего для этого подходят(нашёл twisted, но непонятно как сделать просто отправку сообщений, не как реакция на входящее). Нужно только отправлять сообщения и отключаться... Заранее очень благодарен за помощь!
shldn Можно. Отвечая на не заданный вопрос "а как?" - точно так же, как на любом другом языке умеющим в сетевые сокеты
Просмотри исходник ICQ транспорта PyICQt, а именно необходимые участки кода, переделай под себя. Twisted - это сетевой фреймворк написанный на Python. И я не помню что бы в нем наблюдалось, взаимодействие с протоколом OSCAR. Если лень скачивать и устанавливать, можно просмотреть в кодгугл(SVN), Ссыль _http://code.google.com/p/pyicqt/source/browse/trunk/src/tlib/oscar.py
De-visible, привет. Писал тебе в асю - тишина. Хочу вот начать изучение питона, и хотел бы спросить несколько вопросов: 1) Основые приимущества в сравнении с php? 2) Реализована ли многопоточность? 3) Тяжелый синтаксис (для человека, без проблем работающего на js + php)? 4) Возможно какой-то учебник в онлайне? (желательно с простыми примерами) 5) Поддерживаемость на популярных shared-хостингах (не VPS/VDS) Спасибо за ответ.
1)Google -> Python vs PHP 2)Да, конечно 3)Проще синтаксиса я еще нигде не видел. Очень удобный. 4)Первый пост этой темы глянь + google. Их море 5)Почти везде поддерживается.
Спасибо, но все же хочу спросить какой учебник более "доступный", может ты в курсе? Просто учебник учебнику рознь, может быть есть какие-то рекоммендации?