Nu voi descrie în detaliu întregul proces de implementare a aplicației Django, deoarece este bine descris în manualul oficial. În acest articol, voi face doar un scurt rezumat și voi descrie câteva dintre problemele pe care le-am întâlnit.
Implementarea unei aplicații Django către Heroku
Deci, pentru a implementa aplicația la Heroku, trebuie să executați următoarele comenzi:
Puteți verifica starea nodului utilizând comanda ps:
Puteți vedea jurnalul utilizând jurnalul de comandă:
Puteți rula comenzile Django folosind comanda Run:
Problema cu actualizarea pachetelor Python
Nu există acces direct la mediul virtual, așa că nu l-am putut face pe Heroku să actualizeze automat Django la cea mai recentă versiune minoră. Acum voi explica în detaliu. Să presupunem că, atunci când proiectul a fost creat, versiunea lui Django 1.7.3 a fost actualizată, iar actualmente versiunea 1.7.8 este relevantă. Aveți posibilitatea să modificați requirements.txt de fiecare dată când ieșiți din noua versiune a Django, dar vreau ca pachetele să fie actualizate automat.De obicei, fac asta:
Și în cerințele.txt am această linie:
Deci, dacă specificați în requirements.txt că vreau o versiune de Django sub 1.8, versiunea veche 1.7.3 nu va fi actualizată, deoarece 1.7.3 este de asemenea mai mică de 1.8. La StackOverflow există mai multe discuții pe această temă:
- Cum de a personaliza cerințele lui pip.txt în Heroku la implementare?
- Cum pot face upgrade la o dependență într-un proiect Python pe Heroku
Problema cu configurarea aplicației Django în medii diferite
De obicei, aplicația există pe diferite computere în diferite versiuni. Unul dintre șabloanele pentru modificarea automată a setărilor aplicației importează setări suplimentare în settings.py.În mod normal, am șters fișierele de care aveam nevoie cu scriptul meu pentru a implementa proiecte. Dar Heroku depune aplicația și ia tot ceea ce este în depozit. Rezolvați această problemă în cel puțin două moduri:
- utilizați ramuri diferite cu măști diferite în .gitignore pentru medii diferite,
- utilizați variabilele de mediu Heroku.
Mediul variabil din aplicația Heroku poate fi creat folosind comanda:
Acum, sfârșitul fișierului meu settings.py arată astfel: