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, mình 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.
Những điểm chính
- Giới thiệu về Django: Cung cấp kiến thức cơ bản về Django, từ khởi tạo ứng dụng web, kết nối MySQL đến phát triển blog website một cách nhanh chóng và tái sử dụng hiệu quả.
- Yêu cầu tạo ứng dụng Django với cơ sở dữ liệu: Hướng dẫn chuẩn bị Ubuntu 22.04, quyền sudo, firewall, MySQL và môi trường Python để kết nối Django với cơ sở dữ liệu.
- Hướng dẫn tạo ứng dụng Django kết nối cơ sở dữ liệu: Cung cấp các bước chi tiết từ tạo cơ sở dữ liệu, cấu hình MySQL, khởi tạo dự án Django đến kiểm thử kết nối hoàn chỉnh.
- Vietnix – Giải pháp VPS tốc độ cao: Cung cấp dịch vụ VPS chất lượng với hạ tầng hiện đại, hỗ trợ 24/7 và backup định kỳ, đảm bảo ứng dụng web ổn định và an toàn.
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.

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 website 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.

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.
Cách tạo ứng dụng Django để kết nối với cơ sở dữ liệu
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 ý
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:
env 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:
env 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 triển khai dự án Django, sử dụng VPS Giá Rẻ từ Vietnix là lựa chọn tối ưu với chi phí phù hợp. VPS tốc độ cao đảm bảo xử lý nhanh các yêu cầu và quản lý dữ liệu hiệu quả, ngay cả với ứng dụng có lượng truy cập lớn. Với hỗ trợ kỹ thuật 24/7, Vietnix mang đến môi trường đáng tin cậy để bạn yên tâm phát triển dự án. Liên hệ ngay để biết thêm chi tiết!

VPS Giá rẻ Vietnix: UPTIME VƯỢT TRỘI – chi phí tối ưu
Ổn định, an toàn, tiết kiệm – Nền tảng vững chắc cho ứng dụng của bạn.
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:
env 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:
env pip install wheel
Sau đó tiến hành cài đặt mysqlclient:
env 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:
env 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:
env python manage.py makemigrations
Sau đó, chạy migrate để đảm bảo các thay đổi được thực hiện:
env 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:
env 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:
env sudo ufw allow 8000
Để kiểm tra lại mọi thứ đã hoạt động:
env 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:
env 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ị:

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
Giải pháp VPS Vietnix vượt trội giúp ứng dụng của bạn luôn ổn định
Là đơn vị tiên phong trong lĩnh vực cung cấp VPS tốc độ cao tại Việt Nam, Vietnix mang lại giải pháp tối ưu để triển khai và duy trì các ứng dụng web. Với hơn một thập kỷ kinh nghiệm và sự tin cậy từ hàng trăm nghìn khách hàng, Vietnix đảm bảo dịch vụ chất lượng với cơ sở hạ tầng hiện đại, đội ngũ hỗ trợ tận tâm 24/7 và hệ thống backup định kỳ, giúp ứng dụng của bạn vận hành ổn định và bảo mật tuyệt đối.
Thông tin liên hệ:
- Hotline: 18001093.
- Email: sales@vietnix.com.vn.
- Địa chỉ: 265 Hồng Lạc, Phường Bảy Hiền, Thành Phố Hồ Chí Minh.
- Website: https://vietnix.vn/
Mình đã 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.
Mọi người cũng đọc: