Series Django (P1): Tôi đã cài đặt django như thế nào

Khi nói tới Python, chắc không phải nghĩ nhiều mọi người sẽ nghĩ tới Machine Learning - một trong nhưng hot trend 2017. Tuy vậy, Python cũng là một ngôn ngữ lập trình đa năng có thể ứng dụng vào rất nhiều lĩnh vực khác nhau. Với lĩnh vực phát triển Web, django là môt trong số các framework phát triển Web dành cho python.
Loạt bài viết dưới đây sẽ giới thiệu về django framework.

Introduction

Django là một web framework khá nổi tiếng được viết hoàn toàn bằng ngôn ngữ Python. Nó không phải là một micro-framework như Flask, mà là một framework với đầy đủ các thư viện, module hỗ trợ các web-developer. Django được viết theo mô hình model-view-template (MVT).

Ưu điểm của django

  • Nhanh - chỉ 1 từ thôi, với ai đã nắm được kiến thức cơ bản về python thì ý tưởng của bạn sẽ được hiện thực hóa một cách nhanh nhất. (Mình - khá low tech bắt đầu tìm hiểu django đến lúc hoàn thiện ý tưởng nho nhỏ mất khoảng thời gian 2 tuần).
    Bởi triết lý thiết kế của django là làm sao cho đưa ý tưởng vào thực tế một cách nhanh nhất
  • Có đầy đủ các thư viện/module cần thiết
  • Đảm bảo về tính bảo mật: Không còn các nỗi lo về các lỗi bảo mật thông thường như SQL Injection, cross-site scripting, cross-site request forgery hay clickjacking nữa. Django cũng cung cấp cả phương pháp để lưu mật khẩu an toàn nữa!
  • Khả năng mở rộng tốt: Django có thể đáp ứng lượng traffic lớn, nghĩa là bạn không cần phải lo lắng về khả năng scale sản phẩm của mình nữa.
  • Tính linh hoạt: Có thể xây dựng được nhiều hệ thống đều với django

Cài đặt Django

== Cài đặt package và môi trường ảo ==

Trong loạt bài này, mình sẽ sử dụng python 3.6.xpip 10.0.1(pip3) để cài đặt và sử dụng các package.

Cài đặt Python 3.6.x

$ brew install python3

Nhưng trước khi cài django, ta cần cài đặt trình quản lý gói pip cho Python. Sau đó cài môi trường ảo virtualenv cho dự án của django

MacOS:

brew install python-pip python-virtualenv

Ubuntu:

sudo apt-get install python-virtualenv python-pip

Tạo và sử dụng môi trường ảo

Mình giả sử dự án này là djangoapp. Mình sẽ tạo môi trường ảo cho dự án djangoapp. Các bác làm theo các bước sau:

$ mkdir djangoapp
$ cd djangoapp
$ virtualenv djangoapp_venv

Thư mục djangoapp_venv: thiết lập môi trường ảo cho phép sử dụng các package của python mà không làm ảnh đến các packge python trên toàn hệ thống, tức là trong môi trường đó các bác có thể làm bất gì với các package mà không sợ ảnh hưởng đến các package ngoài môi trường đó. Và mỗi venv khác nhau thì sẽ được cài đặt, sử dụng các package khác nhau.

Bật môi trường ảo

$ source djangoapp_venv/bin/activate

Tắt môi trường ảo:

$ deactivate

Cài đặt và sử dụng các package

Cài đặt package

$ pip3 install YOUR_MODULE

Xuất các package sử dụng ra file requirements.txt

$ pip3 freeze -l > requirements.txt

Và sử dụng để cài các gói đã xuất từ requirements.txt

$ pip3 install -r requirements.txt

Tạo project, chạy Local Server

Mình sẽ tạo 1 ứng dụng kinh điển với tutorial là post/comment. Ứng dụng có 2 phần chính:

  • Public: Chức năng sử dụng cho user
  • Admin: Chức năng cho admin

Mình sẽ sử dụng Python 3.6.5, Django 2.0.5Django Rest Framework cho project này và sử dụng djangoapp_venv đã active ở trên.

Tạo project

Trước tiên mình sẽ dùng pip để install package trong djangoapp_venv (vì venv của mình mới được tạo chưa có package Django, dù ngoài môi trường này máy mình đã có rất nhiều package được cài)

$ pip3 install django

Mình sẽ sử dụng sẵn chức năng tạo 1 project template để có 1 cấu trúc hoàn chỉnh đặt trong thư mục socialapp.

$ django-admin startproject socialapp

Trong thư mục socialapp vừa được tạo ra sẽ có các thành phần cơ bản nhất là:

  • manage.py: một CLI giúp bạn tương tác nhanh với Django
  • socialapp/init.py: File rỗng, có mục đích biến folder này thành một Python package
  • socialapp/settings.py: Các settings của project ở trong này.
  • socialapp/urls.py: Định nghĩa các URL của trang web.
  • socialapp/wsgi.py: Dùng khi deploy project của bạn.

Chạy Local Server

Và giờ mình đi đến thư mục socialapp và thử chạy project vừa tạo:

$ python3 manage.py runserver

Các bác vừa chạy một server Django, một Web server tí hon được viết hoàn toàn bằng Python. Giờ các bác hãy bật một web browser (Firefox, Chrome) lên, vào http://127.0.0.1:8000/ (hoặc http://localhost:8000) và bạn sẽ thấy page:

Tóm lại

Mình vừa tạo xong 1 project mới để thực hiện xuyên suốt series này. Phần tới mình sẽ tạo app mới để bắt đầu các feature của project này.

Suýt quên mất, nhắn nhỏ các bạn:
Nếu có vẫn gặp vướng mắc trong khi thực hành hoặc có bất kì thắc mắc về Python, Django hay muốn tìm hiểu thêm các thông tin hữu ích, các bạn hãy tham gia group Django (Python) Vietnam để được các admin và thành viên support trực tiếp vấn đề mà bạn gặp phải nhé.

Cảm ơn các bác đã theo dõi.

Tài liệu tham khảo: