Django-sessie-aanhegsels is 'n Django app wat daarop gemik is om te werk met aanhangsels in Django.
Basies werk met aanhangsels is dieselfde as die werk met gewone oplaai nie, behalwe vir 'n paar onderskeidings:
- Aanhegsels "behoort" aan kliënte wat hulle opgelaai. Met ander woorde, moet aanhegsels private en ontoeganklik vir openbare wees.
- Aanhegsels georganiseer na "bondels". Dit maak sin as jou kliënt besluit om te werk met verskillende beslaglegging stelle in verskillende dele van jou aansoek (byvoorbeeld, sal hy / sy skryf 'n paar e-posse of versoeke wat op dieselfde tydstip en natuurlik wil nie sy / haar aanhegsels tussen ontvangers te deel.)
- Aanhegsels is tydelik. Daar moet maklik wees om metodes aanhegsels tot die hand of deur verstryking verwyder.
- Aanhegsels moet bruikbaar wees, selfs vir Onbevoegde gebruikers. Dit is te danke aan ons besonderhede. Dit is ook die hoofrede waarom ons geskep hierdie inligting.
- Dit is onmoontlik om twee aanhangsels te stoor met dieselfde naam in dieselfde bondel. Nuwe beslaglegging oorskryf vorige een. Dit lyk soos sane beperking gegee aansoek usecase.
Installasie en opset
Installeer aansoek van PyPI of GitHub:
& Nbsp; pit installeer Django-sessie-aanhegsels # of
& Nbsp; pit installeer git: //github.com/NetAngels/django-session-attachments.git#egg=django-session-attachments
Voeg 'n nuwe aansoek om jou stellings lêer:
INSTALLED_APPS = [
& Nbsp; 'django.contrib.staticfiles',
& Nbsp; ...
& Nbsp; 'session_attachments',
& Nbsp; ...
]
Sluit in 'n nuwe lyn van jou urlconf (urls.py):
urlpatterns = patrone ('',
& Nbsp; ...
& Nbsp; url (r '^ aanhegsels /', sluit ('session_attachments.urls')),
& Nbsp; ...
)
Daar is 'n aparte Django model aanhegsels te red, so moet jy tik:
./manage.py syncdb session_attachments
Hoe om dit te gebruik
Verskaffing dat jou inligting is beskikbaar by localhost: 8000, kry jy volgende aantal URL's om te werk met van jou frontend. Dit sou waarskynlik makliker wees om te werk met die backend asynchroon, met behulp van jQuery vorms uitbreiding of iets soortgelyks.
Monsters hieronder gebruik krul ter wille van eenvoud. Omdat aanhegsels is vasgebind met sessie, is dit belangrik sessie koekies te hou tussen krul aanroepingen. Ons doen dit deur '--cookie session.txt --cookie-jar session.txt opsies te krul.
Neem asseblief kennis dat krul voorbeelde werk nie, tensy die CSRF middleware is in instellings afgeskakel.
Oplaai van lêers na die die bundel
Om lêers oplaai post data te / aanhegsels // URL. Die vorm moet ten minste een lêer veld bevat. Die naam van die lêer velde kan arbitrêre wees as hulle word geïgnoreer deur die app:
Spam> spam.txt $ eggo
$ Eggo eier> egg.txt
$ Krul --cookie session.txt --cookie-jar session.txt -F attach1=@spam.txt -F attach2=@egg.txt -X POST http: // localhost: 8000 / aanhegsels / cat /
[{"Naam": "egg.txt", ...}, {"naam": "spam.txt", ...}]
Kry die lys van aanhangsels in die bundel
$ Krul --cookie session.txt --cookie-jar session.txt -X AOO http: // localhost: 8000 / aanhegsels / cat /
$ [{"Mimetype": "teks / eenvoudig", "grootte": 4, "naam": "egg.txt", "geskape": "2011/12/29 04:12"}, {"mimetype": "teks / eenvoudig", "grootte": 5, "naam": "spam.txt", "geskape": "2011/12/29 04:12"}]
Die lys van dicts in into formaat is terug.
Laai die lêer van die bundel
$ Krul --cookie session.txt --cookie-jar session.txt -X AOO http: // localhost: 8000 / aanhegsels / cat / spam.txt /
spam
Verwyder die beslaglegging van die bundel
$ Krul --cookie session.txt --cookie-jar session.txt -X POST http: // localhost: 8000 / aanhegsels / cat / spam.txt / verwyder /
[Ware]
Skoon te maak die hele bondel
$ Krul --cookie session.txt --cookie-jar session.txt -X POST http: // localhost: 8000 / aanhegsels / cat / verwyder /
[[Ware]]
Bestuur opdrag te opruim verouderde aanhegsels
Daar is 'n bestuur opdrag wat "ou" aanhegsels uit die bondel verwyder. Die opstel van die drumpel te verwyder Jy kan die aantal dae slaag:
./manage.py remove_outdated_attachments --older-as = 3
Vereistes :
- Python
- Django
Kommentaar nie gevind