Bạn đang muốn xây dựng một ứng dụng web mạnh mẽ, an toàn và có khả năng mở rộng nhanh chóng? Django, một framework Python cao cấp, chính là câu trả lời. Tuy nhiên, việc cài đặt Django trên một môi trường máy chủ vững chắc như CentOS 7 đôi khi lại là một thử thách không nhỏ đối với người mới bắt đầu. Sự khác biệt về quản lý gói và cấu hình hệ thống có thể gây ra những trở ngại không đáng có. Đừng lo lắng! Bài viết này chính là kim chỉ nam bạn cần. AZWEB sẽ hướng dẫn bạn từng bước, từ việc chuẩn bị môi trường Python, tạo môi trường ảo, cho đến cài đặt và chạy ứng dụng Django đầu tiên trên CentOS 7 một cách chi tiết và dễ hiểu nhất.
Giới thiệu về Django và CentOS 7
Trước khi đi sâu vào các bước kỹ thuật, hãy cùng tìm hiểu tại sao sự kết hợp giữa Django và CentOS 7 lại là một lựa chọn lý tưởng cho các dự án web chuyên nghiệp. Hiểu rõ công cụ mình sử dụng sẽ giúp bạn tự tin hơn trên hành trình phát triển của mình.
Django là gì và tại sao nên chọn Django?
Django là một web framework mã nguồn mở, được viết bằng Python, tuân theo mô hình kiến trúc Model-View-Template (MVT). Nó được tạo ra với triết lý “Don’t Repeat Yourself” (DRY), khuyến khích việc phát triển nhanh chóng, thiết kế gọn gàng và thực dụng. Thay vì phải xây dựng mọi thứ từ đầu, Django cung cấp một bộ công cụ toàn diện, từ hệ thống quản trị (admin), ORM (Object-Relational Mapping) để tương tác với cơ sở dữ liệu, cho đến hệ thống routing và template mạnh mẽ.
Một trong những lý do chính khiến các nhà phát triển yêu thích Django là tính năng “batteries-included” – mọi thứ bạn cần cho một ứng dụng web phổ thông đều đã được tích hợp sẵn. Điều này giúp giảm đáng kể thời gian phát triển và đảm bảo các thành phần hoạt động hài hòa với nhau. Hơn nữa, Django có một cộng đồng lớn mạnh, tài liệu hướng dẫn chi tiết và một hệ sinh thái các gói mở rộng phong phú. Các ông lớn như Instagram, Spotify, và Pinterest đều tin tưởng sử dụng Django, một minh chứng rõ ràng cho sức mạnh và khả năng mở rộng của framework này.
Tại sao chọn CentOS 7 cho phát triển Django?
CentOS 7 (Community ENTerprise Operating System) là một bản phân phối Linux miễn phí, được xây dựng dựa trên mã nguồn của Red Hat Enterprise Linux (RHEL). Nó nổi tiếng về sự ổn định, bảo mật và hiệu suất cao, là lựa chọn hàng đầu cho các môi trường máy chủ sản xuất (production). Đối với một dự án Django, việc triển khai trên một hệ điều hành đáng tin cậy như CentOS 7 mang lại rất nhiều lợi ích.
Thứ nhất, CentOS 7 cung cấp một nền tảng vững chắc và ít thay đổi, giúp ứng dụng của bạn hoạt động ổn định trong thời gian dài mà không lo bị ảnh hưởng bởi các bản cập nhật thiếu tương thích. Thứ hai, nó được trang bị các cơ chế bảo mật mạnh mẽ như SELinux, giúp bảo vệ ứng dụng của bạn khỏi các mối đe dọa tiềm tàng. Cuối cùng, với vòng đời hỗ trợ dài hạn, bạn có thể yên tâm phát triển và duy trì dự án của mình trong nhiều năm mà không cần phải nâng cấp hệ điều hành liên tục. Sự kết hợp giữa tốc độ phát triển của Django và sự ổn định của CentOS 7 tạo nên một bộ đôi hoàn hảo cho bất kỳ dự án web nào.
Chuẩn bị môi trường Python trên CentOS 7
Nền tảng của một ứng dụng Django chính là Python. Vì vậy, bước đầu tiên và quan trọng nhất là đảm bảo CentOS 7 của bạn được cài đặt và cấu hình đúng phiên bản Python cùng các công cụ cần thiết. Hãy cùng bắt tay vào chuẩn bị môi trường nhé!
Cập nhật hệ thống và cài đặt Python
Trước khi cài đặt bất kỳ phần mềm mới nào, việc cập nhật hệ thống là một thói quen tốt để đảm bảo bạn có các bản vá bảo mật và phiên bản gói mới nhất. Mở terminal của bạn và chạy lệnh sau với quyền superuser (sudo):
sudo yum update -y
Lệnh này sẽ tải về và cài đặt tất cả các bản cập nhật có sẵn cho hệ thống của bạn. Quá trình này có thể mất vài phút tùy thuộc vào tình trạng hiện tại của máy chủ.
CentOS 7 mặc định đi kèm với Python 2, tuy nhiên, Django các phiên bản mới yêu cầu Python 3. Chúng ta cần cài đặt Python 3. Để làm điều đó, trước tiên hãy cài đặt IUS (Inline with Upstream Stable) repository, một kho lưu trữ cung cấp các phiên bản phần mềm mới hơn cho CentOS.
sudo yum install -y https://centos7.iuscommunity.org/ius-release.rpm
sudo yum install -y python36u python36u-libs python36u-devel python36u-pip
Sau khi cài đặt hoàn tất, hãy kiểm tra phiên bản Python 3 để chắc chắn mọi thứ đã sẵn sàng:
python3.6 -V
Bạn sẽ thấy kết quả hiển thị phiên bản Python 3.6.x, xác nhận rằng Python 3 đã được cài đặt thành công trên hệ thống.

Cài đặt các công cụ cần thiết (pip, venv)
Pip là hệ thống quản lý gói của Python, cho phép bạn dễ dàng cài đặt và quản lý các thư viện và framework, bao gồm cả Django. Lệnh cài đặt Python 3.6 từ IUS repository ở trên đã bao gồm cả `python36u-pip`, vì vậy pip cho Python 3.6 cũng đã được cài đặt. Bạn có thể kiểm tra phiên bản pip bằng lệnh:
pip3.6 -V
Tiếp theo, một công cụ cực kỳ quan trọng trong phát triển Python hiện đại là môi trường ảo (virtual environment). Môi trường ảo cho phép bạn tạo ra các không gian làm việc độc lập cho mỗi dự án, mỗi không gian có bộ thư viện và phiên bản Python riêng. Điều này giúp tránh xung đột giữa các dependencies của các dự án khác nhau. Python 3.3 trở lên đã tích hợp sẵn module `venv` để tạo môi trường ảo. Do đó, bạn không cần cài đặt thêm gì cả. Chúng ta sẽ sử dụng công cụ có sẵn này trong các bước tiếp theo để tạo môi trường riêng cho dự án Django của mình.
Tạo và cấu hình môi trường ảo Python
Sử dụng môi trường ảo là một “best practice” không thể thiếu khi làm việc với Python. Nó giúp dự án của bạn trở nên gọn gàng, độc lập và dễ dàng quản lý. Hãy cùng tìm hiểu cách tạo và kích hoạt một môi trường ảo cho dự án Django sắp tới.
Tạo môi trường ảo cho dự án Django
Đầu tiên, hãy tạo một thư mục cho dự án của bạn. Ví dụ, chúng ta sẽ tạo một thư mục tên là myproject trong thư mục home của người dùng:
mkdir ~/myproject
cd ~/myproject
Bây giờ, khi đã ở trong thư mục dự án, hãy sử dụng module venv của Python 3 để tạo một môi trường ảo. Chúng ta sẽ đặt tên cho môi trường ảo này là env (một tên gọi phổ biến).
python3.6 -m venv env
Lệnh này sẽ tạo một thư mục mới có tên env bên trong thư mục myproject. Thư mục env này chứa một bản sao của trình thông dịch Python, pip, và các thư viện chuẩn, tạo ra một không gian biệt lập cho dự án của bạn.

Lợi ích chính của việc này là gì? Giả sử bạn có dự án A cần Django phiên bản 3.2 và dự án B cần Django phiên bản 4.0. Nếu không có môi trường ảo, bạn sẽ phải cài đặt một phiên bản Django duy nhất trên toàn hệ thống, gây ra xung đột. Với môi trường ảo, bạn có thể cài đặt Django 3.2 trong môi trường của dự án A và Django 4.0 trong môi trường của dự án B một cách hoàn toàn độc lập.
Kích hoạt và quản lý môi trường ảo trên CentOS 7
Sau khi tạo xong, môi trường ảo cần được “kích hoạt” để bạn có thể bắt đầu sử dụng nó. Việc kích hoạt sẽ thay đổi shell prompt của bạn và điều chỉnh biến môi trường PATH để các lệnh python và pip sẽ trỏ đến phiên bản trong thư mục env thay vì phiên bản hệ thống.
Để kích hoạt môi trường ảo, hãy chạy lệnh sau từ thư mục myproject:
source env/bin/activate
Bạn sẽ thấy tên môi trường ảo (env) xuất hiện ở đầu dòng lệnh, báo hiệu rằng bạn đang làm việc bên trong môi trường ảo.

Từ bây giờ, mọi gói Python bạn cài đặt bằng pip sẽ chỉ được cài vào thư mục env này và không ảnh hưởng đến hệ thống chung. Để quản lý các dependencies, bạn có thể tạo một file requirements.txt bằng lệnh pip freeze > requirements.txt. File này sẽ liệt kê tất cả các gói đã cài đặt và phiên bản của chúng, giúp người khác dễ dàng tái tạo lại môi trường của bạn.
Khi bạn làm việc xong, để thoát khỏi môi trường ảo, chỉ cần gõ lệnh:
deactivate
Dấu nhắc lệnh sẽ trở lại bình thường. Việc kích hoạt và hủy kích hoạt môi trường ảo giúp bạn chuyển đổi giữa các dự án một cách linh hoạt và an toàn.
Hướng dẫn cài đặt Django bằng pip
Khi môi trường ảo đã được kích hoạt, chúng ta đã có một không gian làm việc sạch sẽ và độc lập. Bây giờ là lúc để cài đặt thành phần chính: Django framework. Việc này sẽ được thực hiện dễ dàng thông qua pip.
Cài đặt Django qua pip trong môi trường ảo
Hãy chắc chắn rằng bạn đang ở trong thư mục dự án (~/myproject) và môi trường ảo đã được kích hoạt (bạn thấy (env) ở đầu dòng lệnh). Nếu chưa, hãy kích hoạt lại bằng lệnh source env/bin/activate.
Bây giờ, hãy sử dụng pip để cài đặt Django. Chạy lệnh sau:
pip install django
Pip sẽ tự động tìm kiếm phiên bản Django ổn định mới nhất từ Python Package Index (PyPI), tải về và cài đặt nó cùng với các thư viện phụ thuộc cần thiết. Quá trình này thường diễn ra khá nhanh chóng.

Sau khi lệnh chạy xong, Django đã được cài đặt thành công bên trong môi trường ảo env của bạn. Để kiểm tra phiên bản Django vừa cài đặt, bạn có thể chạy lệnh sau:
django-admin --version
Lệnh này sẽ in ra phiên bản cụ thể của Django, ví dụ như 4.2.7. Việc kiểm tra phiên bản giúp xác nhận rằng Django đã được cài đặt và có thể truy cập được từ dòng lệnh trong môi trường ảo của bạn.
Xác nhận cài đặt thành công và xử lý lỗi phổ biến
Cách tốt nhất để xác nhận Django đã được cài đặt đúng cách là thử import nó trong trình thông dịch Python. Vẫn trong môi trường ảo, gõ python để mở Python shell. Sau đó, nhập lệnh sau:
import django
print(django.get_version())
Nếu không có lỗi nào xuất hiện và phiên bản Django được in ra, xin chúc mừng, bạn đã cài đặt thành công! Nhấn Ctrl + D để thoát khỏi Python shell.
Tuy nhiên, đôi khi bạn có thể gặp một số lỗi. Một lỗi phổ biến là command not found: pip hoặc command not found: django-admin. Lỗi này thường xảy ra khi môi trường ảo chưa được kích hoạt đúng cách. Hãy đảm bảo bạn đã chạy source env/bin/activate và thấy (env) trước dòng lệnh. Một lỗi khác có thể liên quan đến quyền truy cập. Hãy chắc chắn rằng bạn có quyền ghi vào thư mục dự án. Nếu gặp lỗi liên quan đến các gói hệ thống khi cài đặt, có thể bạn đã bỏ lỡ bước cài đặt python36u-devel ở phần chuẩn bị môi trường. Hãy quay lại và kiểm tra xem tất cả các gói cần thiết đã được cài đặt chưa.
Kiểm tra và chạy ứng dụng Django đầu tiên
Cài đặt thành công chỉ là bước khởi đầu. Để thực sự cảm nhận được sức mạnh của Django, chúng ta cần tạo ra một dự án và chạy nó. Bước này sẽ giúp bạn xác nhận toàn bộ quá trình cài đặt đã diễn ra suôn sẻ và bạn đã sẵn sàng để phát triển.
Khởi tạo dự án Django đơn giản
Django cung cấp một công cụ dòng lệnh tiện lợi là django-admin để tự động hóa nhiều tác vụ, bao gồm cả việc tạo cấu trúc ban đầu cho một dự án mới. Hãy đảm bảo bạn vẫn đang ở trong thư mục ~/myproject và môi trường ảo đã được kích hoạt.
Sử dụng lệnh sau để tạo một dự án mới có tên là azweb_project. Lưu ý dấu chấm . ở cuối lệnh, nó yêu cầu Django tạo dự án ngay trong thư mục hiện tại (myproject) thay vì tạo thêm một thư mục con.
django-admin startproject azweb_project .
Sau khi chạy lệnh, hãy dùng lệnh ls -l để xem cấu trúc thư mục vừa được tạo. Bạn sẽ thấy các tệp và thư mục sau:
azweb_project/: Thư mục chứa các file cấu hình chính của dự án.__init__.py: Một file trống cho Python biết đây là một package.settings.py: Nơi chứa tất cả các cấu hình của dự án Django.urls.py: File định tuyến URL chính.wsgi.py: Cấu hình cho máy chủ ứng dụng WSGI.
manage.py: Một tiện ích dòng lệnh để tương tác với dự án Django của bạn.

Đây là cấu trúc cơ bản của mọi dự án Django, cung cấp một nền tảng vững chắc để bạn bắt đầu xây dựng ứng dụng của mình.
Chạy server thử nghiệm và truy cập ứng dụng
Django đi kèm với một máy chủ web phát triển (development server) nhẹ, rất tiện lợi cho việc thử nghiệm trong quá trình xây dựng ứng dụng. Để chạy máy chủ này, chúng ta sử dụng tệp manage.py.
Trước tiên, chúng ta cần áp dụng các “migrations” ban đầu. Migrations là cách Django quản lý sự thay đổi của cấu trúc cơ sở dữ liệu.
python manage.py migrate
Lệnh này sẽ tạo ra một file cơ sở dữ liệu SQLite mặc định và các bảng cần thiết cho các tính năng có sẵn của Django như xác thực người dùng.
Bây giờ, hãy khởi động server phát triển:
python manage.py runserver 0.0.0.0:8000
Việc chỉ định 0.0.0.0:8000 cho phép máy chủ lắng nghe các kết nối từ tất cả các địa chỉ IP trên cổng 8000. Điều này cần thiết để bạn có thể truy cập ứng dụng từ một máy khác (ví dụ: từ trình duyệt trên máy tính của bạn, truy cập vào IP của máy chủ CentOS 7).
Mở trình duyệt web của bạn và truy cập vào địa chỉ http://YOUR_SERVER_IP:8000. Nếu bạn thấy trang chào mừng của Django với thông báo “The install worked successfully! Congratulations!”, điều đó có nghĩa là mọi thứ đã hoạt động hoàn hảo.

Các lưu ý khi triển khai Django trên CentOS 7
Việc chạy server phát triển (runserver) rất tốt cho việc lập trình, nhưng nó không phù hợp cho môi trường sản xuất (production). Khi bạn sẵn sàng đưa ứng dụng của mình ra ngoài thế giới, có một vài yếu tố quan trọng về bảo mật và cấu hình trên CentOS 7 mà bạn cần chú ý.
Quản lý user và phân quyền cho project Django
Một nguyên tắc bảo mật cơ bản là không bao giờ chạy ứng dụng web của bạn bằng tài khoản root. Nếu ứng dụng có lỗ hổng bảo mật, kẻ tấn công có thể chiếm quyền kiểm soát toàn bộ hệ thống. Thay vào đó, hãy tạo một người dùng riêng biệt không có quyền sudo để chỉ chạy ứng dụng Django.
Bạn có thể tạo một user mới, ví dụ tên là django_user, bằng lệnh:
sudo adduser django_user
Sau đó, cấp quyền sở hữu thư mục dự án cho người dùng này:
sudo chown -R django_user:django_user ~/myproject
Khi triển khai ứng dụng thực tế với các máy chủ như Gunicorn hoặc uWSGI, bạn sẽ cấu hình để chúng chạy dưới danh nghĩa của django_user. Điều này giới hạn thiệt hại tiềm tàng nếu ứng dụng của bạn bị xâm phạm, vì kẻ tấn công sẽ chỉ có quyền truy cập hạn chế trong phạm vi của django_user và thư mục dự án. Đây là một bước nhỏ nhưng cực kỳ quan trọng để bảo vệ máy chủ của bạn.
Cấu hình firewall và cổng kết nối
Mặc định, tường lửa của CentOS 7 (firewalld) sẽ chặn hầu hết các kết nối đến. Khi bạn chạy server Django trên cổng 8000, bạn cần phải mở cổng này trên tường lửa để các kết nối từ bên ngoài có thể truy cập được.
Sử dụng các lệnh sau để mở cổng 8000 vĩnh viễn và tải lại các quy tắc tường lửa:
sudo firewall-cmd --permanent --zone=public --add-port=8000/tcp
sudo firewall-cmd --reload
Lệnh đầu tiên thêm một quy tắc cho phép lưu lượng TCP trên cổng 8000. Lệnh thứ hai áp dụng các thay đổi. Bây giờ, ứng dụng Django của bạn có thể được truy cập từ bên ngoài.
Ngoài ra, CentOS 7 sử dụng SELinux (Security-Enhanced Linux) để tăng cường bảo mật. Mặc dù SELinux rất mạnh mẽ, nó cũng có thể phức tạp và đôi khi ngăn ứng dụng web của bạn hoạt động đúng cách (ví dụ: không cho phép ghi file hoặc kết nối mạng). Khi chuyển sang môi trường production, bạn sẽ cần tìm hiểu cách cấu hình các chính sách SELinux để cho phép máy chủ web (như Nginx) giao tiếp với ứng dụng Django của bạn một cách an toàn, thay vì tắt hoàn toàn SELinux.
Các lỗi thường gặp và cách khắc phục
Trong quá trình cài đặt, ngay cả khi đã làm theo hướng dẫn cẩn thận, bạn vẫn có thể gặp phải một số vấn đề. Dưới đây là hai lỗi phổ biến nhất và cách để bạn chẩn đoán và khắc phục chúng một cách nhanh chóng.
Lỗi phiên bản Python không tương thích
Nguyên nhân và dấu hiệu: Lỗi này xảy ra khi bạn vô tình sử dụng phiên bản Python 2 mặc định của hệ thống thay vì Python 3.6 đã cài đặt. Dấu hiệu thường thấy là các lỗi cú pháp (SyntaxError) khi chạy các lệnh của Django, hoặc thông báo lỗi cho biết phiên bản Python của bạn quá cũ. Ví dụ, bạn có thể chạy python manage.py runserver thay vì python3.6 manage.py runserver bên ngoài môi trường ảo.
Cách xử lý nhanh:
- Luôn kích hoạt môi trường ảo: Cách tốt nhất để tránh lỗi này là luôn đảm bảo môi trường ảo của bạn đã được kích hoạt (
source env/bin/activate). Khi môi trường ảo hoạt động, lệnhpythonsẽ tự động trỏ đến phiên bản Python 3.6 đúng trong thư mụcenv. - Kiểm tra phiên bản: Nếu nghi ngờ, hãy chạy lệnh
python --version. Nếu kết quả làPython 2.7.x, bạn đang sử dụng sai phiên bản. Hãy kích hoạt môi trường ảo và thử lại. - Sử dụng lệnh cụ thể: Nếu không ở trong môi trường ảo, hãy luôn chỉ định rõ phiên bản Python bạn muốn dùng, ví dụ:
python3.6 manage.py ...thay vì chỉpython.

Lỗi cài đặt pip hoặc môi trường ảo không hoạt động
Nguyên nhân và dấu hiệu: Bạn có thể gặp lỗi pip: command not found hoặc khi kích hoạt môi trường ảo, không có gì thay đổi và các gói vẫn được cài đặt toàn cục. Nguyên nhân thường là do thiếu các gói phát triển cần thiết (python36u-devel) hoặc đường dẫn PATH không được cấu hình đúng.
Hướng dẫn kiểm tra và sửa lỗi:
- Kiểm tra cài đặt: Đảm bảo bạn đã cài đặt đầy đủ các gói
python36u,python36u-pip, và đặc biệt làpython36u-devel. Nếu thiếu, hãy chạy lại lệnhsudo yum install ...tương ứng. - Kiểm tra môi trường ảo: Sau khi tạo môi trường ảo (
python3.6 -m venv env), hãy kiểm tra cấu trúc thư mụcenv/bin. Bạn phải thấy các tệp thực thi nhưpython,pip, vàactivatetrong đó. Nếu không có, hãy xóa thư mụcenvvà tạo lại. - Kiểm tra lệnh kích hoạt: Hãy chắc chắn bạn sử dụng lệnh
source env/bin/activate, chứ không phải chỉenv/bin/activate. Lệnhsourcelà cần thiết để thay đổi môi trường của shell hiện tại.
Các Best Practices khi sử dụng Django trên CentOS 7
Việc cài đặt thành công là một chuyện, nhưng để duy trì một dự án Django khỏe mạnh, an toàn và dễ quản lý trên CentOS 7 trong dài hạn lại là một chuyện khác. Hãy tuân thủ các nguyên tắc sau đây để đảm bảo dự án của bạn luôn ở trạng thái tốt nhất.

- Luôn sử dụng môi trường ảo để quản lý thư viện: Đây là quy tắc vàng. Môi trường ảo giúp cô lập các gói phụ thuộc của dự án, tránh xung đột và giúp việc tái tạo môi trường trên một máy chủ khác trở nên dễ dàng thông qua file
requirements.txt. - Backup dữ liệu và cấu hình thường xuyên: Rủi ro mất dữ liệu luôn hiện hữu. Hãy thiết lập một quy trình tự động để sao lưu cơ sở dữ liệu và các tệp cấu hình quan trọng của bạn. Lưu các bản sao lưu ở một nơi an toàn, tách biệt với máy chủ chính.
- Không dùng user root để chạy ứng dụng Django: Như đã đề cập, việc chạy ứng dụng với quyền root là một rủi ro bảo mật nghiêm trọng. Luôn tạo một người dùng riêng với quyền hạn tối thiểu chỉ để chạy ứng dụng của bạn.
- Cập nhật bản vá bảo mật thường xuyên: Giữ cho hệ điều hành CentOS 7, Python và Django cùng các thư viện khác được cập nhật lên phiên bản mới nhất là rất quan trọng. Thường xuyên chạy
sudo yum updatevàpip install -U -r requirements.txt(sau khi kiểm tra tương thích) để nhận các bản vá lỗi và bảo mật mới nhất.
Việc tuân thủ những thực hành tốt này không chỉ giúp ứng dụng của bạn an toàn hơn mà còn giúp quá trình phát triển và bảo trì trở nên suôn sẻ và ít căng thẳng hơn rất nhiều.
Kết luận
Qua bài viết này, chúng ta đã cùng nhau đi qua một hành trình chi tiết để cài đặt thành công framework Django trên hệ điều hành CentOS 7. Từ việc chuẩn bị môi trường với đúng phiên bản Python, tạo và quản lý môi trường ảo, cài đặt Django bằng pip, cho đến việc khởi tạo và chạy thử ứng dụng đầu tiên. AZWEB tin rằng với hướng dẫn từng bước này, ngay cả những người mới bắt đầu cũng có thể tự tin thiết lập một môi trường phát triển Django vững chắc.
Việc kết hợp giữa sức mạnh phát triển nhanh của Django và sự ổn định, bảo mật của CentOS 7 sẽ tạo ra một nền tảng lý tưởng cho các dự án web của bạn. Đừng ngần ngại áp dụng ngay những kiến thức này vào dự án thực tế của mình. Nếu bạn có bất kỳ thắc mắc hay chia sẻ nào trong quá trình thực hiện, hãy để lại bình luận bên dưới nhé.
Để tiếp tục phát triển kỹ năng, hãy theo dõi các bài viết tiếp theo của AZWEB, nơi chúng tôi sẽ đi sâu hơn vào các chủ đề nâng cao như triển khai Django với Nginx và Gunicorn, quản lý cơ sở dữ liệu PostgreSQL và tối ưu hóa hiệu suất cho ứng dụng trong môi trường production. Chúc bạn thành công trên con đường trở thành một nhà phát triển web chuyên nghiệp.