NỘI DUNG

Hosting tốc độ cao Vietnix - tốc độ tải trang trung bình dưới 1 giây
VPS siêu tốc Vietnix - trải nghiệm mượt mà, ổn định
12/06/2023
Lượt xem

Hướng dẫn tạo ứng dụng Django để kết nối với cơ sở dữ liệu

12/06/2023
19 phút đọc
Lượt xem

Đánh giá

5/5 - (82 bình chọn)

Trong bài viết về cách tạo ứng dụng Django để kết nối với cơ sở dữ liệu này, Vietnix sẽ hướng dẫn bạn chi tiết các bước để tạo ứng dụng Django, tạo cấu trúc cơ sở dữ liệu, kết nối ứng dụng với cơ sở dữ liệu và thao tác với dữ liệu. Nếu bạn đang muốn phát triển một ứng dụng web bằng Django, đây sẽ là bài viết hữu ích để tham khảo.

Giới thiệu về ứng dụng Django

Django là một phần mềm mã nguồn mở, được phát triển miễn phí bởi ngôn ngữ lập trình Python. Django tối ưu hoá cho việc mở rộng và tái sử dụng code cũng như khả năng phát triển nhanh chóng các ứng dụng web.

Phần mềm mã nguồn mở Django được phát triển bởi ngôn ngữ lâp trình Python
Phần mềm mã nguồn mở Django được phát triển bởi ngôn ngữ lâp trình Python

Trong bài hướng dẫn này, bạn sẽ học cách khởi tạo, xây dựng một blog webiste kết nối đến MySQL. Điều này có nghĩa bạn sẽ tạo một cấu trúc khung của ứng dụng web bằng django-admin, tạo cơ sở dữ liệu MySQL và kết nối chúng lại với nhau.

Django sẽ cung cấp môi trường phát triển để làm việc với ứng dụng web blog của bạn, nhưng bạn sẽ cần thực hiện một vài bước trước khi public website lên internet.

Yêu cầu để tạo ứng dụng Django để kết nối với cơ sở dữ liệu

Để thực hiện theo các hướng dẫn dưới đây, bạn sẽ phải cần:

  • Một máy chủ Ubuntu 22.04 với tài khoản non-root nhưng phải được cấp quyền sudo và một firewall.
  • Cơ sở dữ liệu MySQL.
  • Môi trường phát triển Python.
Yêu cầu để tạo ứng dụng Django để kết nối với cơ sở dữ liệu
Yêu cầu để tạo ứng dụng Django để kết nối với cơ sở dữ liệu

Khi mọi thứ đã được cài đặt và thiết lập, bạn có thể chuyển sang bước đầu tiên.

Bước 1: Tạo cơ sở dữ liệu

Django hỗ trợ hầu hết các hệ quản trị cơ sở dữ liệu phổ biến, nhưng trong bài hướng dẫn này, ta chỉ tập trung vào cách kết nối Django với MySQL. Để có thể làm điều này, trước hết ta phải tạo một database trên MySQL cũng như một hồ sơ người dùng mà Django có thể sử dụng để kết nối đến.

Kết nối tới MySQL database với quyền root bằng câu lệnh:

sudo mysql

Bạn có thể biết mình đang truy cập vào MySQL server khi prompt thay đổi:

Mysql>

Kiểm tra các cơ sở dữ liệu hiện có bằng câu lệnh sau:

Mysql> SHOW DATABASES;

Kết quả sẽ hiển thị ra như bên dưới, đồng nghĩa với việc bạn chưa tạo bất kì một database nào.


Output
+--------------------+
| Database       	|
+--------------------+
| information_schema |
| mysql         	|
| performance_schema |
| sys            	|
+--------------------+
4 rows in set (0.00 sec)

Mặc định, bạn sẽ có 4 databases được cài sẵn: information_schema, MySQL, performance_schema and sys. Bạn không cần truy cập cũng như làm việc với chúng vì đó là nơi chứa những thông tin quan trọng của MySQL server.

Thay vào đó, hãy tạo database để chứa dữ liệu cho blog của bạn thông qua câu lệnh:

Mysql> CREATE DATABASE blog_data;

Sau khi tạo thành công, kết quả sẽ hiện thị ra như bên dưới:

Output
Query OK, 1 row affected (0.00 sec)

Để chắc chắn rằng bạn đã tạo chính xác, hãy dùng câu lệnh SHOW để hiện thị lại các databases hiện có:

$ SHOW DATABASES;

Bạn sẽ thấy database blog_data được hiển thị ra như bên dưới, đồng nghĩa với chúng ta đã tạo thành công cơ sở dữ liệu cho blog website.

Output
+--------------------+
| Database       	|
+--------------------+
| information_schema |
| blog_data      	|
| mysql             	|
| performance_schema |
| sys            	|
+--------------------+
5 rows in set (0.00 sec)

Tiếp theo, tạo một tài khoản người dùng MySQL riêng biệt mà Django sẽ sử dụng để kết nối trên database mới. Trong bài hướng dẫn này, chúng tôi sẽ sử dụng tên djangouser. Bạn có thể sử dụng bất kì tên nào bạn muốn.

Đầu tiên, tạo người dùng và đặt mật khẩu cho nó bằng cách nhập lệnh sau. Hãy nhớ chọn một mật khẩu mạnh cho cơ sở dữ liệu của bạn bằng cách thay đổi “password” trong ví dụ này:

CREATE USER 'djangouser'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

Tiếp theo, cấp quyền truy cập cho djangouser bằng câu lệnh:

GRANT ALL ON blog_data.* TO 'djangouser'@'localhost';

Bây giờ bạn đã có một database và một tài khoản người dùng được tạo riêng cho Django. Tiếp đến hãy xóa các đặc quyền để phiên hiện tại của MySQL biết về các thay đổi gần đây mà bạn đã thực hiện:

Mysql> FLUSH PRIVILEGES;

Khi hoàn thành, bạn có thể thoát MySQL server bằng cách nhập EXIT hoặc ấn CTRL + D

Bước 2: Tạo tệp tuỳ chọn MySQL

Thay vì chỉ định chi tiết kết nối MySQL trong tệp cấu hình Django, bạn có thể lưu trữ chúng trong option file. Nhiều chương trình MySQL có thể đọc các tệp tuỳ chọn – còn được gọi là tệp cấu hình – để lấy các thông tin như các tuỳ chọn khởi động hoặc chi tiết kết nối. Điều này rất tiện lợi, vì bạn chỉ cần lưu thông tin đăng nhập database ở một nơi.

Mở tệp cấu hình my.cnf để cập nhật thông tin đăng nhập MySQL bằng nano thông qua câu lệnh:

$ sudo nano /etc/mysql/my.cnf

Thêm các dòng sau và chỉnh sửa thành thông tin của bạn:

…

[client]
database = blog_data
user = djangouser
password = your_actual_password
default-character-set = utf8

Lưu ý rằng mã hoá mặc định được đặt là utf8. Đây là một dạng phổ biến để mã hoá dữ liệu unicode trong MySQL. Khi đã chắc chắn rằng các thông tin là chính xác, hãy lưu và đóng tệp lại. Nếu bạn sử dụng nano, bạn có thể ấn tổ hợp phím CTRL + O để lưu và CTRL + X để đóng trình chỉnh sửa.

Tiếp đến hãy khởi động lại MySQL để lưu các thay đổi:

sudo systemctl daemon-reload
sudo systemctl restart mysql

Bước 3: Khởi tạo khung sườn cho dự án Django

Trong bước này, bạn sẽ tạo khung dự án bằng cách sử dụng câu lệnh django-admin.

Chuyển hướng tới thư mục nơi bạn muốn lưu trữ blog app. Trong thư mục đó, tạo một thư mục con với tên tuỳ thích, ở đây chúng tôi sẽ tạo với tên my_blog_app:

Mkdir my_blog_app

Di chuyển vào thư mục vừa tạo

Cd my_blog_app

Tiếp theo di chuyển đến môi trường mà bạn muốn để làm việc với Django. Bạn có thể sử dụng cái có sẵn hoặc tạo mới. Câu lệnh dưới đây cho phép tạo mới một môi trường làm việc với tên gọi env:

python3 -m venv env

Để kích hoạt:

. env/bin/activate

Tiếp đến cài đặt Django vào môi trường làm việc:

pip install django

Khi vẫn ở trong thư mục my_blog_app, hãy tạo một dự án bằng câu lệnh sau:

django-admin startproject blog

Để đảm bảo rằng nó hoạt động, hãy di chuyển đến thư mục blog/

Cd blog

Và chạy ls để xác minh rằng tệp và thư mục cần thiết đã được tạo trong dự án:

Ls

Kết quả sẽ hiển thị thư mục blog và tệp manage.py:

Output 
blog manage.py

Bây giờ bạn đã tạo thành công một thư mục dự án cho ứng dụng blog của mình. Hãy chuyển sang các bước tiếp theo.

Khi bạn muốn triển khai dự án Django của mình và kết nối với cơ sở dữ liệu thì sử dụng VPS là một lựa chọn tối ưu. Vietnix hiện đang cung cấp một loạt các gói VPS đa dạng, linh hoạt như VPS Giá rẻ, VPS Phổ Thông, VPS Cao Cấp và VPS NVMe, giúp bạn tùy chọn theo nhu cầu và ngân sách của mình.

Sở hữu VPS Vietnix, bạn có một môi trường đáng tin cậy để chạy dự án Django của mình. VPS tốc độ cao giúp bạn xử lý các yêu cầu từ người dùng nhanh chóng. Đây là điều quan trọng khi bạn xây dựng ứng dụng web có lượng truy cập lớn hoặc cần xử lý nhiều dữ liệu từ cơ sở dữ liệu.

Ngoài ra, sử dụng VPS của Vietnix, bạn sẽ được hỗ trợ kỹ thuật 24/7, đảm bảo sự ổn định của dự án Django. Liên hệ ngay với Vietnix để tìm hiểu thêm thông tin chi tiết.

Bước 4: Cài đặt kết nối đến MySQL Database

Để sử dụng MySQL trong dự án này, bạn cần thư viện kết nối cơ sở dữ liệu Python 3 tương thích với Django.

Đầu tiên, cài đặt môi trường MySQL và các thư viện cần thiết:

sudo apt install libmysqlclient-dev default-libmysqlclient-dev

Tiếp đến sử dụng pip để cài đặt gói wheel. Wheel là một gói định dạng được sử dụng trong Python để cài đặt các modules từ Python Package Index.

Cài đặt chương trình Python từ gói wheel thường sẽ nhanh và tiết kiệm tài nguyên hơn việc cài đặt các gói từ mã nguồn trực tiếp.

Để có thể cài đặt và sử dụng các packaged dưới dạng wheel, đầu tiên tà cần cài nó trước:

pip install wheel

Sau đó tiến hành cài đặt mysqlclient:

pip install mysqlclient

Kết quả sẽ hiển thị ra như sau, tức client đã được cài đặt đúng cách.

Output
 ...
Successfully installed mysqlclient-2.1.1

Bây giờ bạn đã cài đặt thành công MySQL client bằng thư viện kết nối mysqlclient của PyPi.

Bước 5: Chỉnh sửa các cài đặt

Ở các bước trước ta đã chạy django-admin, khi đó một tệp cấu hình cho Django với tên settings.py cũng được tạo. Bây giờ ta cần chỉnh sửa một số chi tiết trong tệp này để đảm bảo rằng mọi thứ hoạt động một cách tốt nhất.

Để chỉnh sửa tệp, hãy mở đường dẫn đến tệp bằng trình soạn thảo văn bản bạn muốn:

nano ~/my_blog_app/blog/blog/settings.py

Để blog có thời gian chính xác với khu vực của bạn, hãy chỉnh sửa time-zone trong tệp settings.py. Ở ví dụ này, chúng tôi sử dụng múi giờ America/New-York

Ở trong thư mục, di chuyển tới TIME_ZONE:

... 
LANGUAGE_CODE = 'en-us' 
TIME_ZONE = 'UTC' 
USE_I18N = True 
USE_L10N = True 
USE_TZ = True 
...

Hãy chỉnh sửa ở dòng TIME_ZOME. Dưới đây là một ví dụ:

... 
LANGUAGE_CODE = 'en-us'
 TIME_ZONE = 'America/New_York' 
USE_I18N = True
...

Tiếp đến, bạn cần thêm đường dẫn cho các tệp static (tệp static là tệp được cung cấp từ ứng dụng web Django). Nó có thể chứa các tệp cần thiết như JavaScript, Css và hình ảnh.

Di chuyển đến cuối của tệp settings.py và thêm STATIC_ROOT:

STATIC_URL = '/static/' 
STATIC_ROOT = os.path.join(BASE_DIR, 'static')

Bây giờ hãy thêm địa chỉ IP của bạn vào danh sách máy chủ bằng cách di chuyển đến dòng ALLOWED_HOSTS và thêm địa chỉ IP của bạn (địa chỉ IP được đặt trong dấu nháy đơn và tất cả nằm trong dấu ngoặc vuông)

ALLOWED_HOSTS = ['your_server_IP_address']

Tiếp theo cung cấp module Python OS để cung cấp các chức năng khác cho thư mục. Nếu không có Python OS, chương trình của bạn sẽ gặp lỗi khi sử dụng Django interface.

Để làm điều này, hãy import os module và câu lệnh from pathlib import Path như bên dưới:

import os from pathlib import Path

Cuối cùng, hãy thêm thông tin xác thực vào tệp của bạn để phục vụ cho việc kết nối giữa blog Django với MySQL. Trong tệp settings.py, hãy di chuyển đến dòng DATABASES, nó sẽ có dạng:

…

DATABASES = {
	'default': {
    	'ENGINE': 'django.db.backends.sqlite3',
    	'NAME': BASE_DIR / 'db.sqlite3',
	}
}
...

Tiếp theo hãy chỉnh sửa như ví dụ bên dưới:

...

DATABASES = {
	'default': {
    	'ENGINE': 'django.db.backends.mysql',
    	'OPTIONS': {
        	'read_default_file': '/etc/mysql/my.cnf',
    	},
	}
}
...

Dòng ‘ENGINE’: ‘django.db.backends.mysql’ yêu cầu Django xây dựng kết nối với MySQL Database.

Dòng read_default_fileL: /etc/mysql/my.cnf: Điều này cho Django biết nơi nó có thể tìm thấy các chi tiết kết nối có liên quan để kết nối với cơ sở dữ liệu MySQL mà bạn đã tạo ở Bước 1.

Lưu ý rằng Django đọc cài đặt kết nối cơ sở dữ liệu theo thứ tự sau:

OPTIONS

NAME, USER, PASSWORD, HOST, PORT

MySQL option files.

Tại thời điểm này, bạn có thể lưu và đóng tệp.

Tiếp theo, kiểm tra các thay đổi bằng cách:

python manage.py makemigrations

Sau đó, chạy migrate để đảm bảo các thay đổi được thực hiện:

python manage.py migrate

Bây giờ các thay đổi của bạn đã được hoạt động, bạn có thể tạo người dùng để sử dụng quản trị Django Interface với lệnh createsuperuser:

python manage.py createsuperuser

Bạn sẽ được nhắc nhập tên người dùng, địa chỉ email và mật khẩu cho tài khoản user của mình.

Sau khi hoàn thành thông tin này, bạn có thể chuyển sang điều chỉnh cài đặt tường lửa của mình để cho phép thử nghiệm.

Bước 6: Hiệu chỉnh cài đặt tường lửa

Trước khi kiểm thử ứng dụng Django web, bạn phải đảm bảo rằng tường lửa đã được hiệu chỉnh. Để làm điều này, ta phải cho phép truy cập vào cổng 8000:

sudo ufw allow 8000

Để kiểm tra lại mọi thứ đã hoạt động:

sudo ufw status
Output
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
8000                       ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
8000 (v6)                  ALLOW       Anywhere (v6)

Kết quả hiển thị ra như bên trên, tức rằng bạn đã hiệu chỉnh tường lửa thành công, hãy chuyển sang các bước tiếp theo.

Bước 7: Kiểm thử kết nối

Cách đơn giản nhất để kiểm tra kết nối là chạy thử server, nếu xảy ra lỗi, điều đó có nghĩa kết nối chưa được hoạt động. Ngược lại, bạn đã gần như hoàn tất bài hướng dẫn này!

Trước tiên hãy di chuyển tới thư mục chứa dự án:

cd ~/my_blog_app/blog/

Ở đây, bạn hãy chạy câu lệnh như bên dưới:

python manage.py runserver your-server-ip:8000

Bạn sẽ nhận được kết quả:

Output
Performing system checks...

System check identified no issues (0 silenced).
July 19, 2022 - 13:26:08
Django version 4.0.6, using settings 'blog.settings'
Starting development server at http://your-server-ip:8000/
Quit the server with CONTROL-C.

Lưu ý: Bạn có thể thấy rằng các migrations chưa được áp dụng trong output, nhưng đừng lo lắng, điều này không làm ảnh hướng đến việc khởi tạo ứng dụng web blog, bạn có thể tiếp tục.

Bây giờ hãy truy cập vào http://your-server-ip:8000/ để xem kết quả hiện thị:

Kết quả hiển thị trên trang web
Kết quả hiển thị trên trang web

Nếu kết quả hiện thị ra như bên trên thì ứng dạng Django của bạn đã hoạt động một cách trơn tru. Bây giờ bạn có thể dừng server bằng cách ấn CTRl + C.

Để thoát môi trường làm việc Python, hãy sử dụng câu lệnh deactivate:

Deactivate

Vietnix là một nhà cung cấp dịch vụ hosting và VPS tốc độ cao uy tín hàng đầu tại Việt Nam. Điểm nổi bật của Vietnix là công nghệ chống tấn công DDoS độc quyền, giúp bảo vệ và đảm bảo sự ổn định cho hệ thống của khách hàng.

Lấy sự thành công của khách hàng làm mục tiêu để phục vụ, Vietnix không ngừng phát triển hạ tầng để đảm bảo tốc độ cao và sự ổn định cho sản phẩm. Đồng thời, việc nâng cao chất lượng hỗ trợ cũng là ưu tiên của Vietnix, nhằm mang đến sự hài lòng và tin tưởng cho khách hàng.

Những thế mạnh của Vietnix phải kể đến đó là:

  • Hơn 11 năm kinh nghiệm trong lĩnh vực cung cấp hosting, VPS.
  • Đồng hành cùng 50.000 khách hàng.
  • Hơn 100.000 dịch vụ đã được kích hoạt.
  • 97% khách hàng sau khi sử dụng dịch vụ đánh giá 5 sao.
  • 89% khách hàng duy trì sử dụng dịch vụ đến thời điểm hiện tại.
  • Đạt giải thưởng Thương hiệu Việt Nam xuất sắc 2022.

Thông tin 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

Vietnix đã hướng dẫn cách tạo nền tảng cho blog Django và kết nối MySQL với chương trình Django thông qua các cài đặt và cấu hình cơ bản trong tệp settings.py. Bây giờ bạn có thể tiếp tục phát triển mô hình và áp dụng migrations trong ứng dụng của mình. Nếu còn vấn đề gì chưa rõ, có thể để lại bình luận bên dưới để được hỗ trợ thêm.

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Chọn chủ đề :

Hưng Nguyễn

Co-Founder
tại

Kết nối với mình qua

Kết nối với mình qua

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Banner group
Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

Black Friday Hosting & VPS

Chương trình bắt đầu sau

Giảm giá 40% hosting VPS

50 coupon mỗi ngày

Gia hạn giá không đổi

NHẬN DEAL NGAY
Pattern

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

Icon
ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1
Icon
XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG