Я работаю в проекте python / django, в котором я импортирую некоторые данные из файла Excel.
Упрощенный вид, в котором мне нужен импорт:
urls.py
re_path(r'^product_push/', sick_data_views.Products_List_upload, name='product-push')
views.py
def ID_push():
Products.objects.all().delete()
df = product.importDataFrameProducts()
print(df)
data = Products(
ID = str(df['ID'].tolist()).replace("'",'\"'),
)
data.save()
def Products_List_upload(request):
ID_push()
return HttpResponse(status=204)
models.py
class Products(models.Model):
ID = models.CharField(max_length=1000000)
lists.py
class product:
def __init__(self, excel_path = os.path.dirname(os.path.realpath(__file__))+"\\A_Products.xlsx"):
self.__df = self.importDataFrameExamplesList(excel_path)
def importDataFrameExamplesList(self, excel_path):
# Load json
df = pd.read_excel(excel_path, keep_default_dates=False)
return df
def importDataFrameProducts(self):
return self.__df
Когда я запускаю сервер, процесс импорта запускается, и я получаю правильный вывод:
Представления вызывают lists.py и обновляют значения. Допустим,
ID
1
2
3
Но если я изменю файл Excel на другие значения, например:
ID
4
2
3
Если я запускаю localhost: 8000 / product_push, импорт возвращает более старые значения файла Excel (1,2,3).
Мне не нужно обновлять автоматически, но когда я запускаю push-адрес, я могу получить обновленные значения.
Panda хранит некоторую переменную в кеше? Потому что я могу решить эту проблему только после перезапуска сервера.
Заранее спасибо.