2017-01-20 1 views
0

클라이언트가 웹 응용 프로그램의 파일을 제공 할 수 있는지 묻는 상황에서 직접 업로드 한 경우가 있습니다. 대신 로컬 디렉토리에 파일을 드롭하려고합니다. '/ Desktop/myfiles /'에서 보자.django의 로컬 디렉토리에서 파일 가져 오기

질문 # 1 = 로컬 디렉토리에서 모든 파일을 다시 처리 할 수 ​​있습니까? 질문 # 2 = 로컬 디렉토리에서 파일을 검색 할 수 있다면 file_path를 mymodel의 FileField 필드에 저장하기 위해 어떻게 저장할 수 있습니까? 그래서 내가 Mymodel.objects.all()을 쓸 때 나는 모든 파일을 얻는다 !!

추신 : 물론 나는 파일 이름을 미리 알지 못합니다. 그것은 보너스가 될 것입니다!

어떤 아이디어?

답변

0

LOAD LOCAL INFILE이있는 SQL 스크립트를 사용하여 로컬 디렉토리에서 파일을 가져오고 삽입 후 필드를 업데이트 할 수있었습니다. 올바른 파일 경로를 얻으려면 CONCAT을 사용했습니다.
그것은 매력처럼 작동하고 실제로 웹 애플 리케이션에 매우 유용 할 수 있습니다.

0
개인적으로 거절하려고 할 :-) 이상한 요구 사항의

하고있어, 함께 디렉토리 정적 컨텐츠가, 그 디렉토리에 파일을 업로드에 대한 액세스를 얻기 위해 FTP 사용자를 만들 설정 대신 여러 파일에 대해 드래그 앤 드롭을 지원할 수있는 fineuploader로 무언가를 구현하십시오. 하지만 OP가 아닌 것 같습니다 :

관리 기능 ('Python manage.py your_function')을 사용하거나 기본적으로 모든 파일을 검색하고 Celery를 구현하여 사이드 크론 작업 또는 작업자로 사용합니다. 데이터베이스에 대해 새 레코드를 만듭니다. 더 간단하게 만들려면이 기능을 사용하여 원래 디렉토리에 MEDIA를 작성하는 대신 파일을 MEDIA 위치로 옮길 수 있습니다.

기본적으로 django 관리 또는 django-celery 함수를 사용하면 5 분마다 (또는 1 분마다) 확인하고 사용자 업로드와 동일한 작업을 수행 할 수 있습니다.

샘플 코드를 작성하는 데 필요한 코드에 대한 설명이 충분하지 않지만 잘하면 아이디어를 얻을 수 있습니다.

+0

나는 셀러리에 대해 전혀 모른다! 그래서 당신은 기본적으로 나에게 중국어를 말하고있다;). 나는 그것이 이상한 요구 사항이라는 것을 알고있다. 나는 '아니오'에 기대고 있지만 먼저 연구를해야했습니다. 정보 주셔서 감사합니다! –

+0

https://realpython.com/blog/python/asynchronous-tasks-with-django-and-celery/ – dkarchmer

관련 문제