Django là một framework linh hoạt cho phép tạo và xây dựng nhanh các ứng dụng Python. Django được cấu hình mặc định để lưu các dữ liệu vào một file database SQLite nhẹ. Trong bài viết này, Vietnix sẽ hướng dẫn sử dụng MariaDB với Django trên CentOS 7.
Yêu cầu để thực hiện
Để có thể thực hiện theo hướng dẫn, bạn cần một server CentOS 7 mới đã có user non-root với quyền sudo
.
Trình tự tiến hành
Vietnix sẽ hướng dẫn bạn cài đặt các phần mềm cần thiết, tạo database thông tin đăng nhập cho các ứng dụng rồi khởi động và cấu hình một project Django mới để sử dụng như một backend.
Bước 1 – Cài đặt các thành phần từ repository CentOS và EPEL
Đầu tiên, cài đặt package manager Python pip
để có thể cài đặt và quản lý các thành phần Python khác. Bạn cũng cần cài đặt phần mềm database và các thư viện cần thiết.
Một số phần mềm yêu cầu có trong repository EPEL, nơi chứa các package bổ sung. Bạn có thể kích hoạt repository này dễ dàng bằng cách nhập:
sudo yum install epel-release
Với EPEL đã sẵn sàng, cài đặt các thành phần cần thiết bằng cách:
sudo yum install python-pip python-devel gcc mariadb-server mariadb-devel
Sau khi cài đặt hoàn tất, khởi động và enable dịch vụ MariaDB:
sudo systemctl start mariadb
sudo systemctl enable mariadb
Giờ bạn có thể chạy qua một script bảo mật đơn giản, hãy nhập:
sudo mysql_secure_installation
Sau đó bạn sẽ được yêu cầu nhập mật khẩu quản trị. Tuy nhiên hiện tại mật khẩu đó theo mặc định vẫn đang trống nên bạn chỉ cần nhấn ENTER để tiếp tục. Sau đó, bạn sẽ được yêu cầu thay đổi mật khẩu root và đây cũng là một điều nên làm. Tiếp tục nhấn ENTER để chấp nhận tùy chọn mặc định.
Sau khi hoàn thành cài đặt và cấu hình ban đầu cho database, giờ bạn có thể chuyển sang tạo database và user database.
Xem thêm: Cách cài đặt MariaDB trên Centos 7
Bước 2 – Tạo một database và user database
Bắt đầu bằng việc đăng nhập vào một phiên tương tác với phần mềm database:
mysql -u root -p
Bạn sẽ được yêu cầu mật khẩu quản trị đã chọn trong bước trước. Sau đó, một prompt sẽ tiếp tục xuất hiện.
Đầu tiên, tạo một database cho project Django. Mỗi project nên có database độc lập vì mục đích an toàn bảo mật. Trong hướng dẫn này, database là myproject
và bạn có thể thay đổi theo sở thích. Thay đổi cài đặt từ mặc định thành UTF-8 cho database:
CREATE DATABASE myproject CHARACTER SET UTF8;
Lưu ý hãy nhớ kết thúc rất cả các lệnh ở SQL prompt bằng một dấu chấm phẩy.
Tiếp theo, tạo user database dùng để kết nối và tương tác với database. Hãy thay đổi một mật khẩu mạnh hơn:
CREATE USER myprojectuser@localhost IDENTIFIED BY 'password';
Bây giờ, bạn sẽ phải cấp quyền truy cập database phù hợp cho user đã tạo:
GRANT ALL PRIVILEGES ON myproject.* TO myprojectuser@localhost;
Xóa các thay đổi cũ để áp dụng thay đổi ở phiên hiện tại:
FLUSH PRIVILEGES;
Thoát khỏi thông báo SQL để quay trở về bảng shell bình thường:
exit;
Khi sử dụng database, lượng dữ liệu sẽ tăng dần theo thời gian. Điều này đòi hỏi bạn cần phải có một giải pháp máy chủ có khả năng mở rộng để đáp ứng nhu cầu sử dụng. VPS Vietnix là sự lựa chọn tối ưu nhất trong trường hợp này. Bạn có thể lựa chọn từ các gói VPS sau bao gồm VPS NVMe, VPS Giá Rẻ, VPS Phổ Thông, VPS Cao Cấp và VPS GPU với cấu hình và mức giá khác nhau.
Bạn cũng có thể tận dụng các tính năng mở rộng và nâng cấp tài nguyên linh hoạt mà VPS Vietnix cung cấp để tối ưu hóa hiệu suất của hệ thống của mình. Hãy liên hệ với Vietnix để được tư vấn và hỗ trợ một cách tốt nhất.
Bước 3 – Cài đặt Django trong một môi trường ảo
Sau khi đã thiết lập xong database, giờ bạn có thể cài đặt Django. Để linh hoạt hơn, Vietnix sẽ hướng dẫn bạn cài đặt Django và tất cả thành phần phụ thuộc trong một môi trường Python ảo.
Cài đặt package virtualenv
cũng là package cho phép bạn tạo các môi trường ảo:
sudo pip install virtualenv
Tạo một directory để chứa project Django rồi điều hướng vào đó:
mkdir ~/myproject
cd ~/myproject
Tạo một môi trường ảo để lưu trữ các yêu cầu Python của Django project bằng cách:
virtualenv myprojectenv
Lệnh này sẽ cài đặt một bản sao của Python và pip
vào directory myproject
bên trong directory project của bạn.
Trước khi cài đặt ứng dụng trong môi trường ảo, bạn cần phải kích hoạt môi trường, hãy nhập:
source myprojectenv/bin/activate
Thông báo sẽ hiển thị hiện bạn đã hoạt động trong môi trường ảo dưới dạng:
(myprojectenv)user@host:~/myproject$
Một khi môi trường ảo được kích hoạt, bạn có thể cài đặt Django bằng pip
. Cùng với đó, cài đặt package mysqlclient
để cho phép bạn sử dụng database đã cấu hình:
pip install django mysqlclient
Giờ hãy khởi động project Django trong directory myproject
. Việc này sẽ tạo ra một directory con cùng tên dùng để tự chứa code của chính nó, đồng thời tạo một script quản lý ở trong directory hiện tại. Đừng quên thêm dấu chấm vào cuối dòng lệnh để có thiết lập chính xác:
django-admin.py startproject myproject .
Bước 4 – Cấu hình cài đặt của Database Django
Sau khi đã có một project, bạn sẽ cần phải cấu hình project đó để có thể sử dụng database đã tạo.
Mở file cài đặt chính (bên trong directory project con) của project Django bằng cách nhập:
nano ~/myproject/myproject/settings.py
Ở phía dưới cùng file, bạn sẽ thấy một phần DATABASES
giống như sau:
. . .
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
. . .
Cấu hình hiện tại sử dụng SQLite như một database. Bạn cần phải cấu hình lại để dùng được database MariaDB.
Đầu tiên, thay đổi engine để trỏ đến backend mysql
thay vì của sqlite3
. Nhập tên database vào phần NAME
(trong bài viết này là myproject
). Bạn còn cần phải thêm thông tin đăng nhập, bao gồm: Username, mật khẩu và host để kết nối. Thêm và để trống tùy chọn port để thiết lập theo mặc định:
. . .
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'myproject',
'USER': 'myprojectuser',
'PASSWORD': 'password',
'HOST': 'localhost',
'PORT': '',
}
}
. . .
Đóng và lưu file sau khi hoàn thành.
Bước 5 – Di dời database và kiểm tra project
Sau khi hoàn thành cấu hình cài đặt của Django, bạn có thể di chuyển cấu trúc dữ liệu đến database và chạy thử server.
Hãy bắt đầu bằng cách tạo và và di chuyển cấu trúc dữ liệu đến database. Dù chưa thật sự có dữ liệu nhưng bằng cách trên bạn sẽ có thể thiết lập được cấu trúc database:
cd ~/myproject
python manage.py makemigrations
python manage.py migrate
Sau khi tạo xong cấu trúc database, tạo một tài khoản quản trị bằng cách nhập:
python manage.py createsuperuser
Bạn sẽ được yêu cầu chọn một username, cung cấp địa chỉ email và chọn một mật khẩu xác nhận cho tài khoản.
Sau khi tài khoản admin đã được thiết lập xong, bạn có thể kiểm tra database có đang chạy đúng hay không bằng cách khởi động server phát triển Django:
python manage.py runserver 0.0.0.0:8000
Trong trình duyệt, truy cập tên miền hoặc địa chỉ IP server của bạn bằng :8000
để tới trang root mặc định của Django:
http://server_domain_or_IP:8000
Một trang index mặc định có hiển thị giống như sau sẽ xuất hiện:
Thêm /admin
vào cuối URL, bạn sẽ có thể truy cập vào màn hình đăng nhập và interface admin:
Nhập vào username và mật khẩu vừa tạo bằng lệnh createsuperuser
. Bạn sẽ được đưa đến interface admin.
Sau khi kiểm tra xong, bạn có thể dừng server phát triển bằng cách nhấn tổ hợp CTRL-C trong cửa sổ terminal.
Bằng cách truy cập giao diện admin, bạn có thể xác nhận được database đã lưu thông tin tài khoản user và thông tin này có thể truy cập vào database.
Vietnix là nhà cung cấp giải pháp lưu trữ số với hơn 11 năm kinh nghiệm và đã đồng hành cùng hơn 50.000 cá nhân, doanh nghiệp với hơn 100.000 dịch vụ được kích hoạt. Vietnix cũng tự hào khi có tới 97% khách hàng giới thiệu dịch vụ sau khi sử dụng. Với những cống hiến trong suốt thời gian hoạt động, Vietnix vinh dự nhận được giải thưởng Thương hiệu Việt Nam xuất sắc 2022.
Đến với Vietnix, khách hàng sẽ được hỗ trợ bởi đội ngũ nhân viên chuyên nghiệp và giàu kinh nghiệm, luôn sẵn sàng giải đáp các thắc mắc và đưa ra các giải pháp lưu trữ tốt nhất cho khách hàng. Vietnix cam kết cung cấp dịch vụ lưu trữ tốt nhất và đóng góp vào sự phát triển của doanh nghiệp trên internet.
Mọi vấn đề thắc mắc cần tư vấn, quý khách vui lòng liên hệ:
- Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh.
- Hotline: 1800 1093.
- Email: sales@vietnix.com.vn.
Lời kết
Như vậy Vietnix đã hoàn thành hướng dẫn cách cài đặt và cấu hình MariaDB như một backend database cho project Django. Mặc dù SQLite có thể dễ dàng xử lý tải trong quá trình phát triển và sản xuất, nhưng hầu hết các dự án đều được hưởng lợi từ việc triển khai một DBMS đầy đủ tính năng hơn. Nếu thấy bài viết này hữu ích, đừng quên chia sẻ cho nhiều người biết và cùng thực hiện theo hướng dẫn này.