Folosind heroku pentru a implementa o aplicație web la django

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.
Al doilea mod mi se pare mai simplu.
Mediul variabil din aplicația Heroku poate fi creat folosind comanda:
Acum, sfârșitul fișierului meu settings.py arată astfel:

Informații suplimentare







Articole similare

Trimiteți-le prietenilor: