Cách triển khai ứng dụng Django cho Heroku với Git CLI

Tram Ho

Giới thiệu

Heroku là một nền tảng đám mây cung cấp dịch vụ lưu trữ. Nó hỗ trợ một số ngôn ngữ lập trình bao gồm PHP, Node.js và Python. Nó là Platform-as-a-Service (PaaS) cho phép bạn quản lý các ứng dụng trang web trong khi nó chăm sóc các máy chủ, mạng, lưu trữ và các thành phần đám mây khác của bạn.

Trong bài viết này, chúng ta sẽ xem xét cách triển khai ứng dụng Django cho Heroku , sử dụng Git .

Bạn có thể làm theo các bước tương tự và triển khai ứng dụng từ GitHub , nếu nó được lưu trữ ở đó.

Điều kiện tiên quyết

Dưới đây là danh sách những việc cần phải làm trước khi chúng tôi bắt đầu triển khai:

  • Git
  • Tài khoản Heroku và CLI
  • Ứng dụng Django
    Giao diện dòng lệnh Heroku (CLI) giúp bạn dễ dàng tạo và quản lý các ứng dụng Heroku của mình trực tiếp từ thiết bị đầu cuối. Đó là một phần thiết yếu của việc sử dụng Heroku.

Để cài đặt Heroku CLI (hay còn gọi là Heroku Toolbelt ), vui lòng làm theo hướng dẫn trên trang web chính thức .

Đảm bảo rằng ứng dụng Django của bạn đang chạy trên môi trường ảo mà bạn cần duy trì hoạt động trong suốt quá trình triển khai.

Tài khoản Heroku

Khi tất cả những thứ này đã được cài đặt, bước tiếp theo là tạo một tài khoản Heroku miễn phí tại đây , nếu bạn chưa có tài khoản.

Sau khi viết những điều sau vào một thiết bị đầu cuối:

Thiết bị đầu cuối sẽ hiển thị một thông báo như:

Nhấn phím bất kỳ và đăng nhập bằng trình duyệt của bạn. Sau đó, thiết bị đầu cuối sẽ hiển thị một thông báo dọc theo các dòng:

Cấu hình ứng dụng Django cho Heroku

Bây giờ chúng ta đã hoàn tất các điều kiện tiên quyết, hãy chuẩn bị ứng dụng Django cho Heroku.

Procfile

Một Procfile là một file có tên Procfilemà không cần bất kỳ phần mở rộng tập tin được đặt trong thư mục gốc của ứng dụng của bạn. Nó liệt kê các loại quy trình trong một ứng dụng và mỗi loại quy trình là một khai báo của một lệnh được thực thi khi một vùng chứa / dyno của loại quy trình đó được khởi động.

Trước khi tạo Procfile, bạn sẽ muốn cài đặt django gunicorntrong thư mục dự án của mình:

Mặc dù Django xuất Procfilexưởng với máy chủ WSGI của riêng mình, chúng tôi sẽ yêu cầu Heroku sử dụng Gunicorn để phục vụ ứng dụng của chúng tôi, điều này cũng được Heroku khuyến nghị.

Bây giờ, hãy tạo một Procfiletrong thư mục mẹ và thêm dòng sau:

Thay thế yourdjangowebbằng tên thực tế của dự án của bạn.

Runtime.txt

Tạo một tệp văn bản được gọi runtime.txttrong cùng thư mục với Procfile. Nó cho Heroku biết ứng dụng của bạn đang sử dụng phiên bản Python nào. Nếu bạn không chắc chắn về phiên bản, hãy nhập python –versionvào thiết bị đầu cuối với môi trường ảo Django của bạn được kích hoạt.

Sau đó thêm phiên bản vào runtime.txt:

Máy chủ được phép

Đây là một biện pháp bảo mật bổ sung trong Django để ngăn chặn các cuộc tấn công tiêu đề máy chủ HTTP bằng cách chỉ cho phép trang web được phân phát tại máy chủ / miền được thêm vào ALLOWED_HOSTSdanh sách. If Debug = Truevà ALLOWED_HOSTSis []then only localhostđược cho phép theo mặc định. Để triển khai và phục vụ ứng dụng web của bạn trên Heroku, hãy thêm nó vào danh sách:

Ngoài ra, bạn có thể cho phép tất cả các ứng dụng từ Heroku bằng cách bỏ qua tên ứng dụng như sau:

Bạn cũng có thể sử dụng [‘*’]để cho phép tất cả các máy chủ. Bạn có thể tìm thêm chi tiết trong tài liệu .

Cài đặt gói

Dưới đây là các gói bổ sung cần được cài đặt trong môi trường ảo của chúng tôi.

Để kết nối cơ sở dữ liệu Django của chúng tôi với Heroku, hãy cài đặt dj-database-url bằng cách gọi:

Vì Heroku sử dụng cơ sở dữ liệu Postgres, chúng tôi cũng cần bộ điều hợp của nó cho Python:

Và cuối cùng, chúng tôi sẽ sử dụng WhiteNoise để phục vụ các tệp tĩnh trong máy chủ sản xuất. Chúng tôi có thể cài đặt bằng cách gọi:

Chúng tôi đã định cấu hình gunicorn, hãy thêm cấu hình cho whitenoisevà dj-database-url.

cấu hình tệp tĩnh

Đầu tiên hãy thêm các cài đặt cơ bản để phân phát các tệp tĩnh trong bất kỳ dự án Django nào. Bạn có thể sao chép-dán các cài đặt sau vào settings.py:

Thêm WhiteNoise vào MIDDLEWAREdanh sách ngay sau SecurityMiddlewaređó sẽ ở trên cùng:

Thêm STATICFILES_STORAGE = ‘whitenoise.storage.CompressedManifestStaticFilesStorage’vào settings.py.0 của bạn

Cấu hình cơ sở dữ liệu

Chúng tôi đang sử dụng dj-database-urlđể cấu hình cơ sở dữ liệu của mình. Thêm những dòng này ở cuối settings.py:

requirements.txt

Heroku sẽ chỉ nhận ra một ứng dụng đã triển khai là một ứng dụng Python nếu nó có một requirements.txttệp trong thư mục gốc. Nó cho Heroku biết những gói nào cần thiết để chạy ứng dụng của bạn.

Chúng tôi có thể sử dụng pip freezevà chuyển đầu ra thành requirements.txttệp cho việc này:

Của bạn requirements.txtnên bao gồm những điều sau:

Lưu ý: Các phiên bản trên được ứng dụng Django của chúng tôi sử dụng và chúng có thể khác nhau đối với bạn.

Kết nối ứng dụng Heroku với Git

Bây giờ chúng ta cần tạo một ứng dụng Heroku:

Nó sẽ hiển thị một thông báo “xong” với hai URL dọc theo dòng này:

Điều này có nghĩa là một kho lưu trữ Git đã được tạo trên đám mây Heroku cho ứng dụng của bạn. URL https://herokuappname.herokuapp.com/sẽ được sử dụng để truy cập ứng dụng của bạn ở bất kỳ đâu nhưng chúng tôi vẫn cần thực hiện thêm một bước trước khi chạy ứng dụng của mình, tức là chúng tôi cần đẩy mã của mình vào kho lưu trữ.

Khởi tạo một kho lưu trữ trống trong thư mục dự án của bạn:

Kết nối ứng dụng Heroku của bạn với gitkho lưu trữ trống :

Thêm tệp vào vùng dàn dựng:

Cam kết các thay đổi / tệp:

Cuối cùng, đẩy dự án lên gitrepo được lưu trữ trên Heroku:

Nếu mọi thứ suôn sẻ, bạn sẽ thấy một đầu ra như thế này:

nguồn: https://stackabuse.com/how-to-deploy-a-django-application-to-heroku-with-git-cli/

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo