Чтение данных из файла CSV, а затем удалять файл через каждые 1 час в Django - PullRequest
0 голосов
/ 04 мая 2019

У меня есть файл admin.csv, который генерируется каждые 1 час.Я хочу прочитать последнюю строку этого CSV-файла и сохранить данные в модели моего приложения на веб-сайте Django.После сохранения значения я также хочу удалить файл, и если через 1 час ничего не будет сохранено, а файл не будет прочитан и данные не будут сохранены, то на веб-сайте должна появиться ошибка.

У меня естьабсолютно не знаю, как это сделать.Я думаю, что сельдерей мне здесь поможет, но я не знаю, как это сделать.

Мой файл models.py:

class Admin(models.Model):
    Input_IP   = models.GenericIPAddressField(protocol='both', unpack_ipv4=False)
    Skip_Frames = models.PositiveIntegerField()
    Save_Video  = models.BooleanField()
    Id_Display  = models.BooleanField()


    def __str__(self):
        return "{},{},{},{}".format(self.Input_IP, self.Skip_Frames, self.Save_Video, self.Id_Display)

Мой файл tasks.py в папке моего приложения:

@task(name="kay")
def oks():
    with open('\\home\\aakash\\hi.csv') as r:
        reader = csv.reader(r)
        for row in reader:
            _, created = Admin.objects.get_or_create(Input_IP=row[0],Skip_Frames=row[1],Save_Video=row[2],Id_Display=row[3])

Кроме того, у меня есть файл celery.py в папке моего проекта:

from __future__ import absolute_import, unicode_literals
import os
from celery import Celery


# set the default Django settings module for the 'celery' program.
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'hughes.settings')

app = Celery('proj')

# Using a string here means the worker don't have to serialize
# the configuration object to child processes.
# - namespace='CELERY' means all celery-related configuration keys
#   should have a `CELERY_` prefix.
app.config_from_object('django.conf:settings', namespace='CELERY')

# Load task modules from all registered Django app configs.
app.autodiscover_tasks()

@app.task(bind=True)
def debug_task(self):
    print('Request: {0!r}'.format(self.request))

Мой файл admin.csv:

Input_IP    Skip_Frames Save_Video  Id_Display
192.168.1.97    100          True   False
191.168.43.97   91           False  True
191.168.43.97   1            True   True
191.168.4.61    11           False  False
191.135.4.12    99           True   True
...