Cách cài Django và Thiết lập Môi trường phát triển trên Ubuntu 16.04

1 năm trước

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ác urlpatterns dùng để định tuyến và chuyển các URL đến  views 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
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/

Django Default Page

 

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.