|
|
|
@ -1,7 +1,10 @@ |
|
|
|
from django.db import models |
|
|
|
from django.core.files.base import ContentFile |
|
|
|
import datetime |
|
|
|
from urllib.parse import quote_plus |
|
|
|
|
|
|
|
from django.core.files.base import ContentFile |
|
|
|
from django.db import models |
|
|
|
import pytz |
|
|
|
|
|
|
|
# Create your models here. |
|
|
|
|
|
|
|
|
|
|
|
@ -9,14 +12,21 @@ class Page(models.Model): |
|
|
|
url = models.CharField(max_length=300, primary_key=True) |
|
|
|
access_time = models.DateTimeField() |
|
|
|
page_content = models.FileField(upload_to='page_cache') |
|
|
|
content_size = models.PositiveIntegerField() |
|
|
|
|
|
|
|
@property |
|
|
|
def filename(self): |
|
|
|
return quote_plus(self.url) |
|
|
|
|
|
|
|
def write(self, page_content): |
|
|
|
self.content_size = len(page_content) |
|
|
|
file = ContentFile(page_content) |
|
|
|
self.access_time = datetime.datetime.now(pytz.utc) |
|
|
|
self.page_content.save(name=self.filename, content=file) |
|
|
|
|
|
|
|
def read(self): |
|
|
|
return self.page_content.read() |
|
|
|
|
|
|
|
def delete(self): |
|
|
|
self.page_content.delete() |
|
|
|
super().delete() |