django-session-vedhæftede filer er en Django app, der har til formål at arbejde med vedhæftede filer i Django.
Dybest set arbejder med vedhæftede filer er det samme som at arbejde med almindelige uploads, bortset fra nogle få forskelle:
- Vedhæftede filer "tilhører" til kunder, de har uploadet. Med andre ord skal vedhæftede være private og utilgængelige for offentligheden.
- Vedhæftede filer er organiseret i "bundter". Det giver mening, hvis din klient beslutter at arbejde med forskellige vedhæftede sæt i forskellige dele af dit program (f.eks han / hun skriver flere e-mails eller anmodninger samtidigt og naturligvis ikke ønsker at dele hans / hendes vedhæftede filer mellem modtagerne.)
- Vedhæftede filer er midlertidige. Der skal være nemme metoder til at fjerne vedhæftede filer manuelt eller ved udløb.
- Vedhæftede filer skal kunne benyttes selv for ikke-godkendte brugere. Det er på grund af vores særlige. Dette er også hovedårsagen til, at vi skabt denne app.
- Det er umuligt at gemme to vedhæftede filer med samme navn i samme bundt. Ny vedhæftet fil overskrive tidligere. Det ligner sane begrænsning given applikation usecase.
Installation og konfiguration
Installer ansøgning fra PyPI eller GitHub:
& Nbsp; pip installere Django-session-vedhæftede filer # eller
& Nbsp; pip installere git: //github.com/NetAngels/django-session-attachments.git#egg=django-session-attachments
Tilføj en ny ansøgning til din indstillingsfil:
INSTALLED_APPS = [
& Nbsp; "django.contrib.staticfiles«,
& Nbsp; ...
& Nbsp; "session_attachments«,
& Nbsp; ...
]
Medtag en ny linje til din urlconf (urls.py):
urlpatterns = mønstre ('',
& Nbsp; ...
& Nbsp; url (r '^ vedhæftede filer / ", omfatter (» session_attachments.urls «)),
& Nbsp; ...
)
Der er en separat Django model til at gemme vedhæftede filer, så du bør skrive:
./manage.py syncdb session_attachments
Hvordan man bruger det
Forudsat at din app er tilgængelig på localhost: 8000, får du følgende antal webadresser til at arbejde med fra din frontend. Det ville nok være lettere at arbejde med backend asynkront ved hjælp JQuery formularer udvidelse eller noget lignende.
Prøver nedenfor bruger krøller for overskuelighedens skyld. Fordi vedhæftede filer er bundet med session, er det vigtigt at holde session cookies mellem krøller påkaldelser. Vi gør det ved at føre --cookie session.txt --cookie-krukke session.txt muligheder til at krølle.
Bemærk venligst, at krøller eksempler fungerer ikke, medmindre CSRF middleware er deaktiveret i indstillingerne.
Upload filer til pakken
For at uploade filer POST data til / vedhæftede filer // URL. Blanketten skal indeholde mindst én fil felt. Navnet på filen felter kan være vilkårlig, da de er ignoreret af den app:
$ Echo spam> spam.txt
$ Echo æg> egg.txt
$ Krølle --cookie session.txt --cookie-krukke session.txt -F attach1=@spam.txt -F attach2=@egg.txt -X POST http: // localhost: 8000 / tilbehør / foo /
[{"Name": "egg.txt", ...}, {"name": "spam.txt", ...}]
Få listen over vedhæftede filer i pakken
$ Krølle --cookie session.txt --cookie-krukke session.txt -X GET http: // localhost: 8000 / tilbehør / foo /
$ [{"Mimetype": "text / plain", "størrelse": 4, "navn": "egg.txt", "skabt": "2011-12-29 04:12"}, {"mimetype": "text / plain", "størrelse": 5, "navn": "spam.txt", "skabt": "2011-12-29 04:12"}]
Listen over Jæger-samler- i JSON format returneres.
Hent filen fra bundtet
$ Krølle --cookie session.txt --cookie-krukke session.txt -X GET http: // localhost: 8000 / tilbehør / foo / spam.txt /
spam
Slet den vedhæftede fil fra pakken
$ Krølle --cookie session.txt --cookie-krukke session.txt -X POST http: // localhost: 8000 / tilbehør / foo / spam.txt / slet /
[Sande]
Ryd op hele bundtet
$ Krølle --cookie session.txt --cookie-krukke session.txt -X POST http: // localhost: 8000 / tilbehør / foo / slet /
[[Sande]]
Management kommando til oprydning forældede vedhæftede filer
Der er en management-kommando, som fjerner "outdated" vedhæftede filer fra pakken. For at opsætte tærsklen til at fjerne Du kan videregive det antal dage:
./manage.py remove_outdated_attachments --older-end = 3
Krav :
- Python
- Django
Kommentarer ikke fundet