Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 23, 2012 21:25:22

n2b
От:
Зарегистрирован: 2011-02-10
Сообщения: 125
Репутация: +  0  -
Профиль   Отправить e-mail  

Хранение данных, валидаторы

Возникла необходимость где-то хранить информацию.
Информация следующего вида:

Parametr1:
(
NameTable0:
regexp1
regexp2
...

NameTableN:
regexp1
regexp2
...
)
Parametr2:
(
NameTable0:
regexp11
regexp22
...

NameTableN:
regexp11
regexp22
...
)
Щас храню в файлах. Ужасно гемморойно. Хочется другой способ.
Подскажите как лучше.

И еще, подскажите где прочитать доступным языком про написание валидатора(использую wx.Python) для текстового поля?



Отредактировано (Янв. 24, 2012 00:05:00)

Офлайн

#2 Янв. 24, 2012 03:21:10

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Хранение данных, валидаторы

n2b
Возникла необходимость где-то хранить информацию.
Информация следующего вида:

Parametr1:
(
NameTable0:
regexp1
regexp2
...

NameTableN:
regexp1
regexp2
...
)
Parametr2:
(
NameTable0:
regexp11
regexp22
...

NameTableN:
regexp11
regexp22
...
)
Щас храню в файлах. Ужасно гемморойно. Хочется другой способ.
Подскажите как лучше.

И еще, подскажите где прочитать доступным языком про написание валидатора(использую wx.Python) для текстового поля?
Может хранить в базе данных?



Офлайн

#3 Янв. 24, 2012 04:35:54

pyuser
От:
Зарегистрирован: 2007-05-13
Сообщения: 658
Репутация: +  36  -
Профиль   Отправить e-mail  

Хранение данных, валидаторы

n2b
И еще, подскажите где прочитать доступным языком про написание валидатора(использую wx.Python) для текстового поля?
здесь, например



Офлайн

#4 Янв. 24, 2012 09:30:57

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Хранение данных, валидаторы

n2b
Ужасно гемморойно
А что именно гемморойно?
Список можно сбрасывать и загружать cPickle делается одной командой
вот например велосипед:

import cPickle
import os,json
import codecs


def sv(obj,p,encoding="cp1251"):
"""сохранение объектов"""
if os.path.splitext(p)[1]=='.json':
with codecs.open(p,"wt",encoding=encoding) as f:
json.dump(obj,f,indent=1,ensure_ascii=0)
else:
with open(p,"wb") as f:
cPickle.dump(obj,f,2)

def ld(p,encoding="cp1251"):
"""загрузка объектов"""
if os.path.splitext(p)[1]=='.json':
with codecs.open(p,"rt",encoding=encoding) as f:
return json.load(f)
else:
with open(p,"rb") as f:
return cPickle.load(f)
Базы данных нужны если вы:
1 не хотите грузить все данные целиком
2 нужны нетривиальные запросы

По базам начать лучше с shelve sqligth,…
может больше подойдет zodb,mongodb…



Офлайн

#5 Янв. 24, 2012 12:47:29

n2b
От:
Зарегистрирован: 2011-02-10
Сообщения: 125
Репутация: +  0  -
Профиль   Отправить e-mail  

Хранение данных, валидаторы

pyuser
здесь, например
все отлично, только 1 вопрос. у wx нет встроенных валидаторов на не-буквы, не-цифры?
doza_and
А что именно гемморойно?
Именно геморрой начинается после создания exe при помощи py2exe, приходиться адски бороться с кодировками..
doza_and
Базы данных нужны если вы:
Необходимо от разных пользователей приложения скрыть определенную информацию.
doza_and
По базам начать лучше с shelve sqligth,…
может больше подойдет zodb,mongodb…
Что можете сказать о БЕЗ ПРОБЛЕМНОЙ поддержке русского языка в этих базах? regexp зачастую будет включать в себя русские символы.
FishHook
Может хранить в базе данных?
Можно. Подскажите пожалуйста удобную базу данных, с нормальной поддержкой русских записей без дополнительных танцев с кодировками, простую в использовании.



Офлайн

#6 Янв. 24, 2012 14:06:29

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Хранение данных, валидаторы

n2b
БЕЗ ПРОБЛЕМНОЙ поддержке русского языка в этих базах
У них у всех нет проблем. А меньше всего проблем с простыми файлами (cPickle).
но я конечно не знаю какие специфичные проблемы будут с py2exe



Офлайн

#7 Янв. 24, 2012 18:38:07

n2b
От:
Зарегистрирован: 2011-02-10
Сообщения: 125
Репутация: +  0  -
Профиль   Отправить e-mail  

Хранение данных, валидаторы

Насчет хранения решил вопрос: по совету товарища и наставника s0rg использую sqlite3 и парочка простых команд для ввода, вывода данных. За что ему огромное спасибо за терпение и сказочно-хорошие объяснения процесса и помощь!

Насчет валидаторов мучает вопрос, неужели для проверки поля на пустоту, необходимо писать 30 строк кода? И нет встроенных средств?



Отредактировано (Янв. 24, 2012 18:40:44)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version