2015-12-26 3 views
-1

Я использую Peewee ОРМ с БД SQLite и я хочу, чтобы хранить патрон HTML внутри БДАКакого поля выбрать для хранения Raw HTML внутри Peewee модели

Я stucked между выбирая наиболее подходящее поле для хранения HTML в основном весь веб-страницы, включая CSS JS HTML и т.д. независимо, что веб-страница содержит веб-страница загружается через r = requests.get(url)

Мой код:

class BaseModel(Model): 
    class Meta: 
     database = db 

class Page(BaseModel): 
    raw_html = CharField(unique=True) # stucked here between choosing a best suited field 

Это в основном для соскабливания страницы с сайта сохранить всю страницу или страницы внутри БД и так как это будет быть в БД, я могу позже обработать эту информацию, извлекающую информацию, или я могу делать все, что я хочу делать с ней.

Я знаю, что могу использовать другие скребковые библиотеки, такие как scrap.py и т. д., но я хочу сделать это так!

ответ

2

CharField не является хорошим выбором, так как это потребует от вас заранее знать длину данных. Используйте TextField вместо этого - это было сделано хранить сколь угодно большие строки:

class Page(BaseModel): 
    raw_html = TextField(unique=True) 
+1

Не добавить ограничение уникальности, что будет замедлить ход событий. Если вам нужно обеспечить уникальность, хеш-контент, используя что-то вроде md5, затем поместите индекс в хеш. Гораздо эффективнее. – coleifer

+0

@coleifer хороший момент, спасибо! – alecxe