Nếu bạn đã làm theo series “Phát triển Django”, bạn đã khởi động được một ứng dụng Django, kết nối ứng dụng của mình với MySQL và tạo các database model cho dữ liệu Posts và Comments trong ứng dụng web blog của bạn.
Trong hướng dẫn này, chúng ta sẽ kết nối và kích hoạt giao diện quản trị Django để bạn có thể quản lý trang web blog của mình. Trang quản trị Django đi kèm với một giao diện người dùng được thiết kế sẵn để cho phép bạn và những người đáng tin cậy khác quản lý nội dung cho trang web.
Cần lưu ý rằng tài liệu chính thức của Django chỉ ra rằng mặc dù trang này lý tưởng cho việc sử dụng nội bộ của một tổ chức, nhưng không nên xây dựng một ứng dụng web hoàn toàn dựa trên giao diện quản trị Django được tạo tự động. Nếu bạn thấy giao diện của mình cần tập trung vào quy trình hơn hoặc cần ẩn đi các chi tiết triển khai của các bảng và trường cơ sở dữ liệu, tốt nhất bạn nên tự viết các views của riêng mình cho admin site.
Điều kiện tiên quyết
Hướng dẫn này là phần tiếp theo trong series Phát triển Django.
Nếu bạn chưa theo dõi series này, chúng tôi đưa ra các giả định sau:
- Bạn đã cài đặt Django phiên bản 4 trở lên.
- Bạn đã kết nối ứng dụng Django của mình với một cơ sở dữ liệu. Chúng ta đang sử dụng MySQL, và bạn có thể thực hiện kết nối này bằng cách làm theo phần hai của series Django, “Cách tạo một ứng dụng Django và kết nối nó với một cơ sở dữ liệu.”
- Bạn đang làm việc với một hệ điều hành dựa trên Unix, tốt nhất là một máy chủ đám mây Ubuntu 22.04 vì đây là hệ thống chúng tôi đã thử nghiệm. Nếu bạn muốn thiết lập Django trên một môi trường tương tự, vui lòng tham khảo hướng dẫn của chúng tôi, “Cách cài đặt Django và thiết lập môi trường phát triển trên Ubuntu 22.04.”
Vì hướng dẫn này chủ yếu liên quan đến Giao diện quản trị Django, bạn có thể làm theo ngay cả khi bạn có một thiết lập hơi khác.
Bước 1: Kích hoạt Admin
Bất cứ khi nào chúng ta bắt đầu làm việc với Python và Django, chúng ta nên kích hoạt Python virtual environment của mình và di chuyển vào thư mục gốc của ứng dụng. Nếu bạn đã làm theo series, bạn có thể thực hiện điều này bằng cách gõ các lệnh sau.
cd ~/my_blog_app
. env/bin/activate
Để kích hoạt Django Admin, chúng ta cần đảm bảo rằng ứng dụng của chúng ta nằm trong danh sách INSTALLED_APPS trong file settings.py.
Điều hướng đến thư mục chứa file settings.py:
cd ~/my_blog_app/blog/blog/
Từ đây, hãy mở file settings.py. Nếu chưa có, hãy thêm django.contrib.admin
vào danh sách INSTALLED_APPS, sử dụng một trình soạn thảo văn bản như nano.
nano settings.py
Phần INSTALLED_APPS của file sẽ tương tự như dưới đây. Ứng dụng của chúng ta trong danh sách là blogsite
ở trên cùng, nhưng nếu bạn đã tạo một ứng dụng với tên khác, hãy đảm bảo rằng ứng dụng đó được liệt kê trong file này như đã minh họa.
settings.py
...
# Application definition
INSTALLED_APPS = [
'blogsite','django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
...
Hãy chắc chắn lưu và đóng file nếu bạn đã thực hiện thay đổi. Trong nano, bạn có thể làm điều này bằng cách gõ CTRL và X rồi Y và sau đó là ENTER.
Bây giờ chúng ta có thể mở file urls.py
, một lần nữa với nano hoặc một trình soạn thảo văn bản khác.
nano urls.py
Dưới dòng chú thích ở trên cùng, file sẽ giống như sau.
urls.py
…
"""
from django.contrib import admin
from django.urls import path
urlpatterns = [
path('admin/', admin.site.urls),
]
Nếu file khác với những gì ở trên, hãy sao chép và dán các dòng trên vào file urls.py
của bạn.
Bây giờ chúng ta đã đảm bảo rằng dự án web Django của mình có các đoạn mã phù hợp trong các file settings.py
và urls.py
, chúng ta biết ứng dụng của mình sẽ có quyền truy cập vào các model quản trị và giao diện người dùng quản trị.
Bước 2: Xác minh rằng Admin là một ứng dụng đã được cài đặt
Tiếp theo, chúng ta nên di chuyển các model vào cơ sở dữ liệu để nó nhận các model Admin mới được thêm vào.
Điều hướng đến thư mục nơi có file manage.py
.
cd ~/my_blog_app/blog
Hãy nhớ chạy lệnh migrate
bất cứ khi nào bạn thực hiện bất kỳ thay đổi nào đối với các model, như sau.
python manage.py migrate
Nếu chúng ta không thực hiện bất kỳ thay đổi nào đối với các file ở trên, chúng ta sẽ nhận được kết quả tương tự như sau khi chạy lệnh migrate
.
Output
Operations to perform:
Apply all migrations: admin, auth, blogsite, contenttypes, sessions
Running migrations:
No migrations to apply
Ngược lại, kết quả sẽ cho thấy rằng Django đã thực hiện các migrations (di chuyển dữ liệu) cần thiết để hỗ trợ ứng dụng của chúng ta.
Bây giờ chúng ta có thể khởi động máy chủ bằng cách chạy lệnh sau. Bạn có thể thay thế 0.0.0.0
bằng địa chỉ IP của bạn.
python manage.py runserver 0.0.0.0:8000
Sau đó, điều hướng đến URL của bảng điều khiển quản trị trong một trình duyệt bạn chọn. Hãy đảm bảo nhập địa chỉ IP của máy chủ của bạn.
<http://your-server-ip:8000/admin/>
Bạn sẽ nhận được một màn hình đăng nhập tương tự như thế này.
Đến được màn hình này cho chúng ta biết rằng chúng ta đã kích hoạt ứng dụng quản trị thành công.
Mặc dù chúng ta đã kích hoạt ứng dụng, nhưng có thể chúng ta chưa thiết lập tài khoản quản trị Django. Chúng ta có thể tạo tài khoản quản trị để đăng nhập trong bước tiếp theo.
Bước 3: Tạo tài khoản Admin Super-User
Nếu bạn đã thiết lập một tài khoản quản trị và có thể đăng nhập vào trang quản trị của mình, bạn có thể bỏ qua bước này.
Mở một terminal mới để kết nối với máy chủ, hoặc tắt ứng dụng Django bằng cách nhấn CTRL và C để chúng ta có thể làm việc trên môi trường lập trình của máy chủ.
Django cho phép bạn tạo một tài khoản super-user, chúng ta có thể làm điều này bằng cách chạy file manage.py
để bắt đầu quá trình tạo siêu người dùng.
python manage.py createsuperuser
Sau khi chúng ta làm như vậy, chúng ta sẽ được yêu cầu điền vào các chi tiết cho tên người dùng, email và mật khẩu. Trong hướng dẫn này, chúng ta sẽ tạo một tài khoản quản trị với tên người dùng là admin_user
, email sammy@example.com
và mật khẩu admin123
. Bạn nên điền thông tin này với sở thích của riêng bạn và đảm bảo sử dụng một mật khẩu an toàn mà bạn sẽ nhớ.
Output
Username (leave blank to use 'root'): admin_user
Email address: sammy@example.com
Sau đó, nhập mật khẩu của bạn hai lần khi bạn thấy lời nhắc Password:. Bạn sẽ không nhận được kết quả từ các lần gõ phím mật khẩu của mình khi bạn nhập nó. Nhấn enter sau mỗi lời nhắc để xác nhận mật khẩu của bạn.
Output
Password:
Password (again):
Tại thời điểm này, chúng ta đã có một tài khoản quản trị với tên người dùng là admin_user
và mật khẩu admin123
.
Hãy đăng nhập và khám phá những gì tồn tại trên trang quản trị của chúng ta.
Nếu cần, hãy chạy lại ứng dụng Django với python manage.py runserver 0.0.0.0:8000
và sau đó điều hướng lại đến URL http://your-server-ip:8000/admin/
để đến trang đăng nhập quản trị. Sau đó, đăng nhập bằng tên người dùng và mật khẩu bạn vừa tạo.
Sau khi đăng nhập thành công, bạn sẽ nhận được trang sau.
Tiếp theo, chúng ta sẽ cần làm việc để kết nối ứng dụng blog của chúng ta với bảng điều khiển quản trị.
Bước 4: Tạo các mẫu URL cho Post và Comment
Trong bước trước, chúng ta đã đăng nhập thành công vào giao diện quản trị, nhưng bạn có thể đã nhận thấy rằng ứng dụng blog của chúng ta chưa có sẵn ở đó. Để đưa ứng dụng blog của chúng ta vào giao diện quản trị, chúng ta cần thêm và đăng ký nó với các model Post và Comment liên quan.
Để làm điều này, chúng ta sẽ tạo một file trống có tên urls.py
, trong thư mục blogsite
, như sau:
touch ~/my_blog_app/blog/blogsite/urls.py
Trong file này, chúng ta sẽ thêm mẫu URL cho ứng dụng blog của mình để chúng ta có thể truy cập nó thông qua giao diện quản trị.
Điều hướng đến vị trí của file urls.py
mà chúng ta vừa tạo.
cd ~/my_blog_app/blog/blogsite/
Sau đó, mở file bằng nano, chẳng hạn.
nano urls.py
Thêm các dòng code sau vào file.
urls.py
from django.urls import path
from . import views
urlpatterns = [
path('$/', views.posts, name='posts'),
path('$/', views.comments, name='comments'),
]
Đây là các biểu thức mẫu URL cần thiết để cho phép ứng dụng của chúng ta truy cập vào các views cho Posts và Comments. Chúng ta chưa tạo các views đó, nhưng sẽ đề cập đến vấn đề này sau trong series.
Bước 5: Kết nối ứng dụng Blog với Admin
Việc kết nối blog của chúng ta với giao diện quản trị sẽ cho phép chúng ta thấy các liên kết cho cả Posts và Comments bên trong bảng điều khiển quản trị. Hiện tại, bảng điều khiển chỉ hiển thị các liên kết cho Groups và Users.
Để kết nối hai cái với nhau, chúng ta cần đăng ký các model Posts và Comments của chúng ta bên trong file admin của blogsite
.
Điều hướng đến thư mục blogsite
:
cd ~/my_blog_app/blog/blogsite
Sau đó, mở file admin.py
trong một trình soạn thảo văn bản bạn chọn.
nano admin.py
File sẽ được điền với một câu lệnh import và một dòng chú thích.
admin.py
from django.contrib import admin
# Register your models here.
Bạn nên chỉnh sửa file để nó chứa đoạn code sau để hỗ trợ ứng dụng của chúng ta.
admin.py
from django.contrib import admin
from blogsite.models import Post
from blogsite.models import Comment
admin.site.register(Post)
admin.site.register(Comment)
Khi bạn hài lòng với file, hãy lưu và thoát.
Bây giờ bạn đã đăng ký các model Post và Comment bên trong bảng điều khiển quản trị. Điều này sẽ cho phép giao diện quản trị nhận các model này và hiển thị chúng cho người dùng đã đăng nhập và đang xem bảng điều khiển quản trị.
Bước 6: Xác minh rằng ứng dụng Blog đã được thêm vào Admin
Bây giờ bạn đã thêm đoạn mã Python có liên quan, hãy chạy máy chủ. Mở http://your-server-ip:8000/admin
và đăng nhập vào admin bằng thông tin đăng nhập của bạn nếu bạn chưa đăng nhập. Trong hướng dẫn này, chúng ta đã đăng nhập với tên người dùng admin_user
và mật khẩu admin123
.
Bây giờ bạn đã đăng nhập, bạn sẽ được đưa đến trang web sau. Nếu nó chưa thay đổi so với trước, bạn có thể cần làm mới trình duyệt của mình.
Điều này xác minh rằng chúng ta đã kết nối ứng dụng của mình, blogsite
, với bảng điều khiển quản trị Django.
Khi bạn hoàn tất việc kiểm tra ứng dụng của mình, bạn có thể nhấn CTRL + C để ngừng chạy máy chủ Django. Điều này sẽ đưa bạn trở lại môi trường lập trình của mình.
Khi bạn đã sẵn sàng rời khỏi môi trường Python của mình, bạn có thể chạy lệnh deactivate
:
deactivate
Việc hủy kích hoạt môi trường lập trình của bạn sẽ đưa bạn trở lại lời nhắc lệnh terminal.
Kết luận
Trong hướng dẫn này, bạn đã kích hoạt thành công giao diện quản trị, tạo một tài khoản đăng nhập quản trị và đăng ký các model Post và Comment với admin.
Giao diện quản trị Django là cách bạn sẽ có thể tạo bài viết và giám sát bình luận với blog của mình.
Sắp tới trong series, chúng ta sẽ tạo các views cho ứng dụng blog.
Bạn có muốn tiếp tục tìm hiểu về series phát triển Django không?