我想從網站廢料數據可以說例如SO。什麼應該是正確的方式來存儲刮取的數據爲TextField
例如在SO我們寫一個文本編輯器內,但在後端它被存儲在一個文本字段適當HTML標記和渲染時需要。我面臨類似的情況,我不得不取消文本字段的數據,所以我的問題是如何在保存前應用格式。
我在想有一個樣本模板,並使用模板引擎Mako來填充上下文然後最後保存它。這是正確的方法嗎?也許有人可以分享他的經驗。
我想從網站廢料數據可以說例如SO。什麼應該是正確的方式來存儲刮取的數據爲TextField
例如在SO我們寫一個文本編輯器內,但在後端它被存儲在一個文本字段適當HTML標記和渲染時需要。我面臨類似的情況,我不得不取消文本字段的數據,所以我的問題是如何在保存前應用格式。
我在想有一個樣本模板,並使用模板引擎Mako來填充上下文然後最後保存它。這是正確的方法嗎?也許有人可以分享他的經驗。
如果您已經在使用django,爲什麼不使用框架模板?
假設你在你的模板目錄下有一個text_field_template.html
,你可以在模型中的內容保存方法使其:
from django.template.loader import render_to_string
class MyModel(models.Model):
the_text_field = models.TextField...
def save(self,context):
self.the_text_field = render_to_string(text_field_template.html,context)
super(MyModel,self).save()
當然你也可以添加模板ARG,所以你save(context,template)
。
在「保存」方法中渲染模板會更好,因爲典型的數據庫活動的寫入次數少於讀取次數。如果您保存該字段一次,然後讀取10次或100次,則在保存時進行渲染是有意義的。
你可能有不同的使用情況:
如果上下文是基於當前和不斷變化的數據,這是僅當用戶閱讀領域,然後你拉的記錄時,必須進行渲染。
一個應用程序使用該字段一次,一個保存 - 一個讀取 - 一個刪除。如果您在保存或讀取時進行渲染,則無關緊要。
等
注意,從安全角度考慮,必須將其轉到DB之前什麼都逃不過。
其實我關心的是方法。這是正確的方法,首先提取數據用提取的數據填充我自己的模板,然後保存? –
更新了答案 –
我將首先使用真棒'Scrapy框架'廢棄數據,然後使用刮取的數據呈現模板,然後將其傳遞到可以在'Django'文本字段中將其保存在管道中的項目字段。 –