Cách cài Django và Thiết lập Môi trường phát triển trên Ubuntu 16.04
Cách cài Django và Thiết lập Môi trường phát triển trên Ubuntu 16.04
Mở đầu
Django là môt framework miễn phí mã nguồn mở được viết bằng Python gắn liền với mẫu kiến trúc phần mềm model template view (MTV). Mẫu MTV được Django phát triển dựa trên mẫu model–view–controller (MVC). Theo Django Software Foundation, một model là nguồn đơn lẻ cuối cùng của source dữ liệu, view cho biết dữ liệu được người dùng hình dung qua một hàm gọi ngược của Python đến một URL cụ thể, và template là cách Django sinh ra một cách linh động các HTML.
Điểm mạnh của Django là khả năng mở rộng, tái sử dụng và phát triển nhanh chóng. Nó cũng , cho phép các thành phần riêng lẻ được đối xử độc lập với nhau. Don’t repeat yourself ( DRY programming) là nguyên tắc khi sử dụng Django.
Trong hướng dẫn này, ta sẽ cài đặt một môi trường phát triển cho Django bằng việc cài đặt Python 3, pip 3, Django và virtualenv
.
Yêu cầu
Để theo dõi bài viết, bạn cần một non-root user với quyền sudo
trên Ubuntu Linux server. Tham khảo bài viết Thiết lập ban đầu cho server chạy Ubuntu 16.04 để xem hướng dẫn.
Bước 1 — Cài Python và pip
Để cài đặt Python đầu tiên chúng ta phải cập nhật local APT repository. Trong cửa sổ terminal của bạn, gõ lệnh sau:
sudo apt-get update && sudo apt-get -y upgrade
Cờ -y
chấp nhận tất cả các yêu cầu trong quá trình cài đặt.
Khi được hỏi có muốn cấu hình grub-pc
, nhấn ENTER
để chấp nhận các giá trị mặc định, hoặc tự custom nó theo ý của bạn.
Django Software Foundation khuyến khích sử dụngPython 3, nên ta sẽ cài nó với lệnh:
sudo apt-get install python3
Chạy lệnh python3 để kiểm tra:
python3 -V
Kết quả trả về sẽ là phiên bản Python đang sử dụng.
Output python 3.5.2
Sau khi cài Python 3, ta sẽ cài pip từ kho gói của Python với lệnh:
sudo apt-get install -y python3-pip
Kiểm tra lại với lệnh sau:
pip3 -V
Outputpip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)
Tiếp theo ta sẽ cài thêm các gói hữu ích cho một môi trường phát triển của Python.
Bước 2 — Cài virtualenv
virtualenv là một virtual environment (môi trường ảo) nơi bạn có thể cài các phần mềm và các gói của Python trong một không gian đã được container hóa, cho phép bạn độc lập môi trường phát triển của Python với môi trường bên ngoài. Việc này giúp tránh các xung đột về gói tin và một số lỗi phát sinh khác.
Để cài virtualenv, ta sẽ dùng lệnh pip3 như sau:
pip3 install virtualenv
Sau đó kiểm tra lại để chắc chắn quá trình cài đặt đã thành công.
virtualenv --version
Bạn sẽ thấy output như sau:
Output15.1.0
Đến đây, bạn đã có thể tách biệt Django với các phần mềm phụ thuộc được cài kèm từ kho của Python hay kể cả trên máy tính.
Bước 3 — CàiDjango
Có 3 cách để cài Django:
Cách 1: Cài Django bên trong một
virtualenv
.
Dùng cách này khi bạn muốn cài Django một cách hoàn toàn cách biệt với môi trường bên ngoài server.Cách 2: Cài Django từ các nguồn gói.
Nếu muốn có phiên bản mới nhất của Django, bạn có thể cài nó trực tiếp từ nguồn.Cách 3: Cài Django một cách toàn cục với pip.
Sử dụng pip sẽ cài đặt Django một cách toàn cục, nghĩa là như một phần mềm bình thường trên server. Ta sẽ dùng cách này trong bài viết.
Trong khi trong thư mục gốc của server, chúng ta phải tạo thư mục sẽ chứa ứng dụng Django. Chạy lệnh sau để tạo ra một thư mục django-apps , hay tên gọi khác tùy bạn. Sau đó chuyển đến thư mục vừa tạo.
mkdir django-appscd django-apps
Tạo môi trường ảo env
.
virtualenv env
Kích hoạt môi trường vừa tạo:
env/bin/activate
.
Lúc này tiền tố sẽ chuyển thành (env)
Trong môi trường ảo vừa tạo, ta sẽ cài Django với pip. Sau khi cài, ta có thể tạo và chạy các ứng dụng Django.
pip install django
Kiểm tra lại với lệnh:
django-admin --version
Output2.0.1
Bước 4 — Tạo Project Django đầu tiên
Thiết lập tường lửa
Trước hết, để đảm bào kết nối đến Django, ta cần phải thay đổi cấu hình tường lửa. Nếu đang sử dụng UFW, bạn có thể cho phép kết nối đến cổng với lệnh sau:
sudo ufw allow 8000
Bắt đầu Project
Ta sẽ thử tạo ra một ứng dụng với django-admin
, một tiện ích dòng lệnh dùng để chạy các lệnh với quyền admin trên Python. Sau đó ta có thể dùng lệnh startproject
để tạo cấu trúc cho thư mục lưu trữ website.
Truy cập vào thư mục django-apps
rồi chạy lệnh:
django-admin startproject testsite
Note: Chạy lệnh django-admin startproject
sẽ đặt tên project và tên gói chứa project cùng là
và tạo project trong thư mục hiện tại. Nêu thông số
được cung cấp, Django sẽ sử dụng nó làm thư mục cho project, và tạo file manage.py
cùng với project trong nó.
Gời hãy kiểm tra xem các file trong project đã được tạo hay chưa. Chuyển đến thư mục testsite
rồi liệt kê các thành phần chứa trong nó với lệnh:
cd tetsite
ls
Outputmanage.py testsite
File manage.py
giống với file django-admin
và đặt đường dẫn đến project là sys.path
. Nó cũng trỏ biến môi trường DJANGO_SETTINGS_MODULE
đến file settings.py
của project.
Bạn có thể xem file script manage.py
với lệnh less
trong terminal:
less manage.py
Sau đó bấm q
để thoát ra ngoài.
Giờ hãy chuyển sang thư mục testsite
để xem các thành phần trong nó:
cd teststie/
ls
Bạn sẽ thấy output:
Output__init__.py settings.py urls.py wsgi.py
__init__.py
cho biết cổng truy cập của Python project.settings.py
miêu tả cấu hình của bản cài đặt Django và cho Django biết các cài đặt nào đang được kích hoạt.urls.py
chứa danh sách cácurlpatterns
dùng để định tuyến và chuyển các URL đếnviews
của chúng.wsgi.py
chứa các cấu hình cho Web Server Gateway Interface.Web Server Gateway Interface (WSGI) là một nền tảng chuẩn của Python cho việc triển khai của các web server và ứng dụng.
Note: Mặc dù file mặc định được tạo sẵn, bạn vẫn có thể dễ dàng chỉnh sửa file wsgi.py
bất cứ lúc nào nếu cần.
Khởi động và kiểm tra Website
Giờ hãy khởi động server và xem trang web trên host tại một cổng nhất định với lệnh runserver
Thêm địa chỉ IP của server vào mục ALLOWED_HOSTS
trong file settings.py
nằm trong địa chỉ ~/test_django_app/testsite/testsite/
.
Biến ALLOWED_HOSTS
chứa chuỗi kí tự đại diện cho tên miền hoặc host mà Django sẽ phục vụ. Đây là một thông tin cần bảo mật để tránh HTTP Host header attack, thường xảy ra với những server trông-có-vẻ an toàn.
Thêm địa chỉ IP vào sau khi mở file với nano:
nano ~/django-apps/testsite/testsite/settings.py
"""
Django settings for testsite project.
Generated by 'django-admin startproject' using Django 2.0.
...
"""...# SECURITY WARNING: don't run with debug turned on in production!DEBUG = True# Edit the line below with your server IP addressALLOWED_HOSTS = ['your-server-ip']
...
Thoát nano với CTRL
+ x
rồi y.
Chuyển đến thư mục chứa manage.py
:
cd ~/django-apps/testsite/
Chạy lệnh sau để thay thế chuỗi your-server-ip bằng địa chỉ IP của server.
python manage.py runserver your-server-ip:8000
Cuối cùng truy cập vào URL bên dưới để xem trang web đã được hiển thị chưa:
http://your-server-ip:8000/
Sau khi kiểm tra xong, bấm CTRL
+ C
để dừng lệnh runserver
. Bạn sẽ được đưa trở lại môi trường lập trình.
Nếu không còn gì để làm, thoát khỏi môi trường ảo với lệnh deactivate
:
deactivate
Bạn sẽ được đưa về giao diện dòng lệnh của terminal ban đầu.
Tổng kết
Thông qua bài viết bày, bạn đã biết cách cài đặt Python 3 thông qua Ubuntu APT repository cùng với pip 3, virtualenv
, và django
để xay dựng một môi trường phát triển ứng dụng Django.